2017-01-20 1 views
0

jqGrid에 자동 완성 필터 기능을 구현했습니다. 그러나 이것은 작동하지 않습니다, 나는 거기에 2 문제가 있다고 생각합니다.jqGrid 필터링 안 함

저는 포맷터를 사용하는 열이 있습니다. 이 열을 포함 시키면 필터링이로드를 전혀 트리거하지 않습니다. 이 열이 없으면 필터링은로드를 트리거하지만 결과를 필터링하지는 않습니다.

필터링을 적용하려면 index 또는 jsonmapcolModelname과 같아야합니다. 나는이 행성이 여전히 운이 없음을 확인했다.

코드 :

loadData: function (someData) { 

    $(model.table).GridUnload(); 

    $(model.table).jqGrid({ 
     url: $(model.tableURL).val(), 
     datatype: 'JSON', 
     mtype: 'POST', 
     postData: { 
      someData: someData 
     }, 
     emptyrecords: 'No Wholesalers', 
     viewrecords: true, 
     autowidth: true, 
     shirnkToFit: false, 
     rowNum: -1, 
     loadtext: 'Loading...', 
     multiselect: false, 
     width: "100%", 
     height: "100%", 
     colModel: [ 
     { label: 'Wholesaler', name: 'WholesalerName', jsonmap: 'WholesalerName', sortable: false, align: 'center', width: '250' }, 
      { 
       label: 'Amount Complete', name: 'PercentageComplete', jsonmap:'PercentageComplete', search: false, sortable: false, align: 'center', 
       formatter: function (cellvalue, options, rowObj) { 
        return '<div class="progress progress-striped pos-rel" data-percent="' + rowObj.PercentageComplete + '%">' + 
         '<div class="progress-bar progress-bar-success" style="width:' + rowObj.PercentageComplete + '%;"></div></div>'; 
       } 
      }, 
     { label: 'No of Customers', name: 'NoOfCustomers', jsonmap: 'NoOfCustomers', search: false, sortable: false, align: 'center' }, 
     { label: 'Last Updated', name: 'LastUpdated', jsonmap: 'LastUpdated', search: false, sortable: false, align: 'center' }, 
     { label: 'Last Update By', name: 'LastUpdateBy', jsonmap: 'LastUpdateBy', search: false, sortable: false, align: 'center' }, 
     ], 
     altrows: true, 
     loadComplete: function() { 
      var table = this; 

      //model.update() 
     }, 
     loadError: function (xhr, st, err) { 
      alert(err); 
     } 
    } 
    ).jqGrid('filterToolbar', { 
     stringResult: true, searchOnEnter: false, ignoreCase: true, 

    }) 
}, 
+0

상업용 [Guriddo jqGrid JS] (http : //www.jqGrid.com)의 jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid) /guriddo.net/?page_id=103334) 또는 버전 <= 4.7의 이전 jqGrid? 그리드에 대략 몇 행을 표시해야합니까? 'loadonce : true' 시나리오를 사용하면 코드를 단순화 할 수 있습니다. 테스트 JSON 데이터도 포함하는 것이 좋을 것입니다 (2-3 행이면 충분합니다). 포매터를 포함한다면'unformat '도 포함시켜야합니다. 아마도'sorttype' 함수로 사용하면 좋을 것입니다. 자동 완성에 대해 작성했지만 코드는 포함하지 않았습니다. – Oleg

+0

자동 완성과 관련된 일반적인 문제점 중 하나는 자동 완성의'select' 콜백 내에서 추가'.change()'이벤트를 트리거해야한다는 것입니다. 어떤 방법 으로든 사용자를 도울 수있는 구현 세부 정보를 더 알아야합니다. – Oleg

+0

한 가지 더 중요한 발언 :'loadonce : true'와 오래된 jqGrid를 사용한다면'rowNum : -1' 행을 수정해야합니다. – Oleg

답변

0

내가 loadonce: true이 설정되지 않은 밝혀졌습니다.

따라서 키 누르기에서 필터링 할 때 그리드가 다시로드되고 서버의 데이터로 채워집니다.