jqGrid筛选器工具栏初始默认值

Pau*_*sey 12 jquery jqgrid

我正在使用jqGrid和过滤器工具栏,我需要为其中一个字段设置初始默认过滤器值,以便默认情况下只显示状态为"打开"的行,但如果需要,用户可以显示"已关闭"行.

目前我有这样的解决方法

setTimeout(function() {$('#gs_Status').val('Open');$("#eventsGrid")[0].triggerToolbar()},500);

但它导致第二个请求,真的很糟糕.

有人知道怎么做这个吗?

编辑:更多研究告诉我这可能是不可能的:(

Mar*_*k B 38

有几个步骤可以做到这一点:

  1. 在列模型搜索选项中传递默认值
  2. 防止默认表单数据加载过程
  3. 在表准备好时触发过滤器工具栏数据加载

更详细一点:

将网格数据类型设置为local(这可以防止初始数据加载)并设置搜索选项的默认值:

  $("#mytable").jqGrid({
    datatype: "local",
    colNames:['Keyword','Selected'], 
    colModel:[
     {name:'keyword',
      sortable:true,
      searchoptions: { defaultValue:'golf' }
    },
    {name:'selected',
      sortable:false,
      searchoptions: { }
    },
    ....
    ....
Run Code Online (Sandbox Code Playgroud)

然后添加过滤器工具栏,设置数据类型和URL,并触发加载:

  $('#mytable').jqGrid('filterToolbar', {autosearch: true});
  $('#mytable').setGridParam({datatype: 'json', url:'/get_data.php'});
  $('#mytable')[0].triggerToolbar();
Run Code Online (Sandbox Code Playgroud)


Jus*_*ier 1

您是否查看过jqGrid 文档 wiki 中的工具栏搜索附加网格方法?看来您可以使用filterToolbar设置过滤器 并triggerToolbar设置过滤器。我自己还没有尝试过,但是loadComplete一旦为网格加载了数据,您就可以在 中执行此操作。

这有帮助吗?