2010-04-05 133 views
1

除了一個小問題,一切都正常工作,與我的jqgrid。我已經定義如下POSTDATA:基於用戶輸入過濾jqgrid

$(document).ready(function() { 

$("#ctl00_ContentPlaceHolder2_drpUSite").change(function() { 
    site = ($("#ctl00_ContentPlaceHolder2_drpUSite").val()); 
    loadusergrid(); 
}); 
var usrparams = new Object(); 
var site = ($("#ctl00_ContentPlaceHolder2_drpUSite").val()); 
//----grid code--------- 
$("#users").jqGrid({ 
    prmNames: { 
     _search: "isSearch", 
     nd: null, 
     rows: "numRows", 
     page: "page", 
     sort: "sortField", 
     order: "sortOrder" 
    }, 
    // add by default to avoid webmethod parameter conflicts 
    postData: { searchString: '', searchField: '', searchOper: '', sites: site }, 
    datatype: function(postdata) { 
     mtype: "GET", 
     $.ajax({ 
      url: 'Users.aspx/GetUsers', 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify(postdata), 
      dataType: "json", 
      success: function(data, st) { 
       if (st == "success") { 
        var grid = $("#users")[0]; 
        var m = JSON.parse(data.d); 
        grid.addJSONData(m); 
       } 
      }, 
      error: function() { 
       alert("Loading Failed!"); 
      } 
     }); 
    }, 
    // this is what jqGrid is looking for in json callback 
    jsonReader: { 
     root: "rows", 
     page: "page", 
     total: "total", 
     records: "records", 
     cell: "cell", 
     id: "login", 
     repeatitems: true 
    }, 
    colNames: ['Login', 'First Name', 'Last Name', 'Email', 'Site', 'Role', 'Room', 'UnitID', 'Supervisor', 'Super'], 
    colModel: [ 
    { name: 'login', index: 'login', width: 20 }, 
    { name: 'fname', index: 'fname', width: 20, hidden: true }, 
    { name: 'lname', index: 'lname', width: 60, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} }, 
    { name: 'email', index: 'email', width: 20, align: "center", sortable: false }, 
    { name: 'site', index: 'site', width: 50, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} }, 
    { name: 'role', index: 'role', width: 15, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} }, 
    { name: 'room', index: 'room', width: 30, align: "center", sortable: true }, 
    { name: 'unitid', index: 'unitid', width: 10, align: "center", sortable: false }, 
    { name: 'super', index: 'super', width: 20 }, 

    { name: 'supername', index: 'supername', width: 10, align: "center", sortable: false }, 
], 

    pager: "#pageusers", 
    viewrecords: true, 
    caption: "Registered Users", 
    imgpath: 'themes/steel/images', 
    rowNum: 20, 
    rowList: [10, 20, 30, 40, 50], 
    sortname: "pname", 
    sortorder: "desc", 
    showpage: true, 
    gridModel: true, gridToolbar: true, 
    onSelectRow: function(id) { 
     var ret = jQuery("#users").getRowData(id); 
     accpara.id = ret.id; 
     accpara.pname = ret.pname; 
     accpara.pid = ret.pid; 
     accpara.bld = ret.bld; 
     accpara.cname = ret.cname; 
     accpara.amt = ret.amt; 
     accpara.status = ret.status; 
     accpara.notes = ret.notes; 
     accpara.lname = ret.lname; 
    } 
}); 
jQuery("#users").navGrid('#pageusers', { view: false, del: false, add: false, edit: false }, 
{}, // default settings for edit 
{}, // default settings for add 
{}, // delete 
{closeOnEscape: true, multipleSearch: true, 
closeAfterSearch: true 
}, // search options 
{} 
); 
$("#users").setGridWidth(1300, true); 
$("#users").setGridHeight(500, true); 
jQuery("#users").jqGrid('filterToolbar'); 
//----grid code ends here 



    function loadusergrid() { 
     $("#users").setGridParam({ page: 1 }, { pgbuttons: true }, { pginput: true }, { postData: { "site": site} }).trigger("reloadGrid"); 
    } 
}); 

當頁面加載的第一時間,該工程..

現在我有4個下拉菜單,其過濾器的用戶。我已經寫了一個函數,當下拉更改時重新加載網格,但它沒有工作..我在這裏做錯了什麼?當我啓用回傳下拉菜單時,我會得到過濾結果。我想避免我的頁面回發:)。現在我已經添加了網站下拉菜單作爲過濾器。一旦開始工作生病添加剩餘的3.

螢火蟲顯示ajax調用成功觸發,但與一個空sitename。請注意,當頁面第一次加載時,網站下拉菜單會顯示一個空值。

在此先感謝

回答

2

$("#mygrid").setPostData({parameters});的伎倆