2011-02-05 7 views
4

私はjqGridフィルターツールバーを使用しています。 2つの列、1つの数値、もう1つの英数字でテストしています。jqGridツールバーの検索演算子を列で

フィルタツールバーでのすべてのフィルタ操作は、 'bw'(beginning with)演算子を使用して行われます。

列で実行する操作を設定するにはどうすればよいですか?

この場合、数値列に「eq」を、英数字に「cn」を入力します。

btw、高度な検索ダイアログを使用するとすべて正常に動作します。

ありがとうございます!

$('#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'、インデックス: 'EntityID'、幅:50、整列: 'left'、サイズ変更可能:true、ソート可能:true、sopt:['eq']} 他に必要なものはありますか? ありがとう! – AlexCode

+0

@AlexCode:私はあなたがinplementationに問題があると思います。このグリッドを見てください。 '' {"groupOp": "AND"、 "rules":[{"フィールド": "カテゴリ"、 "op": "eq"、 "data": "1" "}]}" 'が送られます。これは 'Category'カラムの 'sopt:['eq']'オプションに対応しています。 – Oleg

+0

私はtry/catchモードになっています:) 私の実装を別のコメントに貼り付けます。多分問題がなければ何も見ることができません。 ありがとうオレグ! – AlexCode

0

フッター内の他の検索オペランドを失いたくない場合は、その配列内の他のすべてのオペランドを追加することが重要です。最初はphpgrid

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

ためToolbarsearch

のためにのみ使用され、これらの御馳走は、私はここに質問を投稿が、前にそれが機能しなかったことにしようとしたいくつかの検索の問題

関連する問題