2011-02-05 92 views
4

我正在使用jqGrid过滤器工具栏。 我正在测试它与2列,一个数字和另一个字母数字。jqGrid按列分列的工具栏搜索运算符

通过过滤器工具栏的所有过滤操作都是使用'bw'(开始于)操作符。

如何设置我想按列执行的操作?

在这种情况下,我想对数字列执行'eq'和对字母数字执行'cn'。

顺便说一句,如果我使用高级搜索对话框,一切工作正常。

谢谢!

这里是我的实现:

$('#EntityListGrid').jqGrid({ 
    url: '<%= ResolveUrl("~/Controls/EntityManager/Controllers/EntitiesController.ashx?method=GridDataList") %>', 
    datatype: 'json', 
    mtype: 'GET', 
    colNames: ['ID', 'Name', 'Actions'], 
    colModel: [ 
    { name: 'EntityID', index: 'EntityID', width: 50, align: 'left', resizable: true, sortable: true, sopt:['eq'] }, 
    { name: 'Name', index: 'Name', width: 250, align: 'left', resizable: true, sortable: true }, 
    { name: 'act', index: 'act', width: 75, sortable: false, search: false }, 
    ], 
    pager: $('#EntityListGridPager'), 
    rowNum: 10, 
    rowList: [10, 20, 30], 
    sortname: 'EntityID', 
    sortorder: 'desc', 
    viewrecords: true, 
    imgpath: '', 
    caption: 'Entities', 
    width: EntityListGridWidth, 
    height: 400, 
    gridComplete: function() { 
     var ids = jQuery("#EntityListGrid").jqGrid('getDataIDs'); 
     var editImageUrl = '<%=Page.ResolveUrl("~/Controls/EntityManager/Images/edititem.GIF")%>'; 
     for (var i = 0; i < ids.length; i++) { 
      var cl = ids[i]; 

      ce = "<img src='" + editImageUrl + "' onclick='EditEntity(" + cl + "); return false;' />"; 
      ce2 = "<input type='button' value='details' src='" + editImageUrl + "' onclick='EditEntity(" + cl + "); return false;' />"; 
      $("#EntityListGrid").setRowData(ids[i], { act: ce2 }); 
     } 
    } 
}).navGrid('#EntityListGridPager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {}, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true }); 

$('#EntityListGrid').jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false }); 

回答

7

您可以在相应的列定义中使用sopt属性。它可以是sopt:['eq']sopt:['cn']你的情况。该设置将仅覆盖选定列的搜索运算符。

sopt:['eq']属性的用法有时确实需要。例如,如果您具有选项stype:'select', edittype:'select', formatter:'select'的列。

更新:正确的设置是searchoptions:{sopt: ['eq']}而不是sopt: ['eq']。请阅读the documentation

+0

我想,在这里张贴问题之前,但没有奏效。 检查请求我仍然阅读: {“groupOp”:“AND”,“rules”:[{“field”:“EntityID”,“op”:“bw”,“data”:“4”}]}} 该列声明如下: {name:'EntityID',index:'EntityID',width:50,align:'left',resizable:true,sortable:true,sopt:['eq']} 我还需要别的吗? 谢谢! – AlexCode 2011-02-05 14:49:02

0

只是提及如果你不想丢失页脚中的其他搜索操作数搜索其重要的是添加阵列中的所有其他操作数。只有第一个用于Toolbarsearch

为phpgrid

$opsmeta = array("cn","eq","bw","ni","in","ne","lt","le","gt","ge","bn","ew","en","nc") ; 
$col["searchoptions"] = array("sopt"=>$opsmeta); 

谢谢这些治疗帮助我理清一些搜索问题

相关问题