2013-02-13 55 views
0

我一直在使用jqGrid v4.0并且工作完美,但是由于我升级到了jqGrid v4.4.1,因此FilterTolBar没有可用的选择字段。格式化程序选择不适用于使用jqGrid-v4.4.1的FilterToolBar

这里是我的代码:

<script type="text/javascript"> 
$(function() { 
    var grid = $("#grid_container"); 
    grid.jqGrid({ 
     url:'index.php?getData=xml&', 
     datatype: "xml", 
     colNames:['id', 'user','sid', 'Status'], 
     colModel:[ 
      {name:'id', index:'id', width:150, hidden:true}, 
      {name:'user', index:'user', width:150 , stype:'select', editoptions:{value: "Jhon:Jhon;Adam:Adam"}, searchoptions:{sopt:['cn']}}, 
      {name:'sid', index:'sid', width:65 }, 
      {name:'status', index:'status', width:110 }, 
     ], 
     rowNum:20, 
     rowList:[10,20,100], 
     pager:'#grid_pager', 
     sortname: 'user', 
     sortorder: 'desc', 
     height:'100%' 
    }) 
    .jqGrid('filterToolbar' ,{searchOnEnter : true}); 

}); 

谢谢你的任何建议。

回答

0

当前版本的jqGrid是4.4.4。如果您必须使用旧版本,则不仅可以在editoptions中包含相同的value,也可以在searchoptions中包含相同的value。在使用filterToolbar的情况下,建议添加额外的值,专门用于搜索空值。它将不允许过滤列。所以user列的定义可以像下面

{ name: 'user', stype: 'select', 
    editoptions: { value: "Jhon:Jhon;Adam:Adam" }, 
    searchoptions: { sopt: ['eq'], value: ":Any;Jhon:Jhon;Adam:Adam" } } 

您应该考虑删除隐藏id列,因为id属性行(网格的<tr>元素)将基于如果输入数据的id属性分配您的正确填写数据(见the documentation)。如果您不使用数据编辑,则可以删除editoptions并仅使用searchoptions。我强烈建议您使用"eq"而不是"cn"进行选择。使用"cn"将不允许您在一个选择中使用诸如"a","ab"和​​之类的选项。如果用户选择"ab",则将选择"ab"和​​。如果用户选择"a",则将选择树选项"a","ab"和​​。所以jqGrid不会像用户所期望的那样工作。

我建议您另外在所有用来提高性能的网格中包含gridview: true。在大多数使用情况下,还需要使用autoencode: true

+0

像一个魅力工作。 非常感谢! – 2013-02-13 15:03:17

+0

@YassinGerrard:不客气! – Oleg 2013-02-13 15:20:26