1

我有一个 jqGrid,其代码类似于以下示例代码:

jQuery("#list10").jqGrid({
    url:'MyServlateName?action=MyAction',
    datatype: "xml",
    mtype:"POST",
    ajaxSelectOptions: {type: "POST"},
    sortable: true,
    height: "100%",
    rowNum:4,
    width: 1000,
    emptyrecords: "No Records to display",
    colNames:['Contact No', 'Cust ID', 'Name'], 
    colModel:[
          {name:'CNO',index:'CNO', width:80,sortable:true},
          {name:'CUSTID',index:'CUSTID', width:60,sortable:true},
          {name:'CNAME',index:'CNAME', width:200,sortable:true, searchoptions:{ sopt:['cn']}},
    ],
    pager: '#pager10',
    viewrecords: true,
    sortname: 'CUSTID',
    shrinkToFit: false,
    toppager: true,
    sortorder: "asc"
}

}).navGrid('#pager10',{cloneToTop:true, edit:false,add:false,del:false,view:true,search: false, refresh:true},
        {},
        {},
        {},
        {},
        {recreateForm: true,width:700,navkeys: [true,38,40]}
);
jQuery("#list10").jqGrid('bindKeys');
$("#list10").jqGrid('filterToolbar', {stringResult: true,searchOnEnter: false});

在 filterToolbar 我使用以下代码以编程方式放置 CUSTID:

document.getElementById("gs_CUSTID").value=CUST_ID_VAR_NAME;

它在 CUSTID 列中显示 filterToolbar 中的值,但未根据我放置的 CUSTID 填充/搜索网格(没有搜索发生)。如果我使用 filterToolbar 进行常规搜索,那么它工作正常。

任何建议将不胜感激。

4

1 回答 1

3

您可以通过不同的方式解决问题。例如,您可以在控件中设置值后触发change事件:#gs_CUSTID

$("#gs_CUSTID").val("123");
$("#gs_CUSTID").trigger("change");

更好的是datatype: "local"最初设置在网格中。它将防止在创建网格期间加载未过滤的数据。'MyServlateName?action=MyAction'之后,您可以更改datatype"xml"using setGridParam,设置值#gs_CUSTID并在最后触发change事件。

$("#list10").jqGrid("setGridParam", {datatype: "xml"});
$("#gs_CUSTID").val("123");
$("#gs_CUSTID").trigger("change");

change您可以triggerToolbar手动调用方法而不是触发(参见jqGrid 代码部分):

$("#list10").jqGrid("setGridParam", {datatype: "xml"});
$("#gs_CUSTID").val("123");
$("#list10")[0].triggerToolbar();
于 2013-09-25T15:16:20.400 回答