2010-04-05 2 views
1

작은 문제를 제외하고 모든 것이 jqgrid에서 잘 작동합니다.사용자 입력을 기반으로 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"); 
    } 
}); 

1 시간 동안 페이지가로드,이 작품 ..

지금 내가하는 필터 사용자 4 드롭 다운이 : 나는 아래의 postData을 정의했습니다. 드롭 다운이 변경 될 때 그리드를 다시로드하는 함수를 작성했지만 작동하지 않습니다. 무엇이 잘못 되었습니까 ?? 내가 드롭 다운에 대한 다시 게시를 사용하면 필터링 된 결과가 나타납니다. 나는 내 페이지에 포스트 백을 피하고 싶다. :) 지금은 필터로 사이트 드롭 다운을 추가했습니다. 일단 이것이 작동하기 시작하면 아프고 나머지를 추가하십시오.

방화 광은 ajax 호출이 성공적으로 시작되었지만 빈 사이트 이름을 가지고 있음을 보여줍니다. 페이지가 처음으로로드 될 때 사이트 드롭 다운이 빈 값으로 표시된다는 점에 유의하십시오. 사전

답변

2

$("#mygrid").setPostData({parameters});에서

덕분에 트릭을 수행

관련 문제