【问题标题】:jqGrid setting filterToolbar value programmaticallyjqGrid以编程方式设置filterToolbar值
【发布时间】:2013-09-25 12:34:43
【问题描述】:

我有一个 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 进行常规搜索,那么它工作正常。

任何建议将不胜感激。

【问题讨论】:

    标签: java javascript jquery jqgrid


    【解决方案1】:

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

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

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

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

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

    $("#list10").jqGrid("setGridParam", {datatype: "xml"});
    $("#gs_CUSTID").val("123");
    $("#list10")[0].triggerToolbar();
    

    【讨论】:

    • 我使用了您回答中的最后一种方法。并且工作正常。谢谢。
    猜你喜欢
    • 2011-02-14
    • 2017-05-13
    • 1970-01-01
    • 2018-07-25
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多