2011-02-05 2 views
4

jqGrid 필터 툴바를 사용하고 있습니다. 두 개의 열, 하나의 숫자 및 다른 영숫자로 테스트하고 있습니다.jqGrid 열의 툴바 검색 연산자

필터 도구 모음을 통한 모든 필터 작업은 'bw'(시작 문자) 연산자를 사용하여 수행됩니다.

열을 기준으로 수행 할 작업을 어떻게 설정할 수 있습니까?

이 경우에는 숫자 열에 '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

을 제압 저를 도와 주셔서 감사합니다 phpgrid에 대한 Toolbarsearch

에 사용됩니다. 요청을 검사 할 때 여전히 읽습니다. { "groupOp": "AND", "rules": [{ "필드": "EntityID", "op": "bw", "data": "4"}}} 열은 다음과 같이 선언됩니다. {이름 : 'EntityID', 색인 : 'EntityID', 너비 : 50, 정렬 : '왼쪽', 크기 조정 : 참, 정렬 가능 : 참, 쇠뜨기 : [ 'eq']} 다른 것이 필요합니까? 감사합니다. – AlexCode

+0

@AlexCode : 당신이 inplementation에 문제가 있다고 생각합니다. 이 표를보세요. 시작할 때''{ "groupOp": "AND", "rules": [{ "field": "Category", "op": "eq", "data": "1" "}]}" "보낼 것입니다. 이것은 'Category'컬럼의'sopt : [ 'eq']'옵션에 해당한다. – Oleg

+0

나는 try/catch 모드에있다. :) 내 구현을 다른 주석에 붙여 넣을 것이다. 아마도 큰 문제없이 아무것도 볼 수있을 것이다. 감사합니다. 올레그! – AlexCode

0

바닥 글에있는 다른 검색 피연산자를 잃고 싶지 않으면 언급하십시오. 배열에서 다른 피연산자를 모두 추가하는 것이 중요합니다. 첫 번째는

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

이 치료는 내가하지만 여기에 질문을 게시하기 전에 작동하지 않았다 시도 일부 검색 문제