2017-03-20 10 views
1

이제는 searchOperators가있는 열과 함께 jqGrid (버전 : jqGrid 4.14.1-pre, 무료 jqGrid)를 사용하고 있습니다.jqGrid searchOperator는 툴바를 지운 후에 잘못된 연산자를 표시합니다.

도구 모음을 지울 때 문제가 발생합니다. 기본 연산자는 "< = (작거나 같음)"입니다. 연산자를 다른 것으로 변경하고 열 x 버튼 또는 navGrid의 새로 고침 버튼을 사용하여 툴바를 지울 때 searchOperator는 이전에 선택한 것을 표시하지만 기본값 인 "< ="으로 필터링합니다. 드롭 다운 팝업을 표시하기 위해 연산자를 클릭하면 디스플레이가 아래 그림과 같이 다른 연산자 임에도 불구하고 기본값이 강조 표시됩니다.

capture

This is demo

나는 대해 참조 그와 나의 경우와 달리 기본값으로 재설정하지 않습니다. 그러나 나는 그것과 나의 특별한 차이점을 발견하지 못했다. (사용자 정의 searchOperator가 문제가 될 수 있다고 생각하지 않습니다.) clearToolbar()가 발견되었지만 텍스트 상자 값만 다시 설정 한 것처럼 보입니다.

나는 분명히 어떤 종류의 연산자가 남았는지 신경 쓰지 않지만, 내가 원하는 것은 올바른 것을 표시하는 것이다. 저 좀 도와 주 시겠어요?

다음은 그리드 및 툴바 코드입니다.

tbLockedPartiesHistoryArea.jqGrid({ 
     url: '/LockedObjects/GetLockedParties', 
     datatype: "json", 
     contentType: "application/json; charset-utf-8", 
     mtype: 'GET', 
     emptyrecords: "There is no locked parties currently.", 
     colModel: [ 
      {label: 'LockedBy',  name: 'LockedBy',  sorttype: 'text', searchoptions: {clearSearch: true}}, 
      {label: 'LockedDate', name: 'LockedDate', sorttype: 'date', searchoptions: {clearSearch: true}, 
        sortable: true, 
        resizable: false, 
        hidden: false, 
        search: true, 
        formatter: 'date', 
        formatoptions: {srcformat: 'm/d/Y h:i:s A', newformat: 'm/d/Y h:i:s A'}, 
        searchrules: {date: true}, 
        searchoptions: { 
         sopt: ["dle", "deq", "ge"], 
         dataInit: function (element) { 
            var self = this; 
            $(element).datepicker({ 
             dateFormat: 'mm/dd/yy', 
             changeYear: true, 
             changeMonth: true, 
             showButtonPanel: true, 
             onSelect: function() { 
             setTimeout(function() { 
              self.triggerToolbar(); 
              }, 0); 
             } 
            }); 
           } 
       } 
      }], 
     rowNum: 20, 
     rowList: [20, 30, 50], 
     prmNames: { 
      page: 'defaultPageNumber', 
      rows: 'rowsPerPage' 
     }, 
     customSortOperations: { 
      deq: {}, //I will just cut this since the code gets too long 
      dle: {}, 
     }, 
     forceClientSorting: true, 
     rownumbers: true, 
     viewrecords: true, 
     loadonce: true, 
     multiselect: true, 
     multiPageSelection: false, 
     pager: true, 
     searching: { 
      searchOperators: true, 
      defaultSearch: 'cn', 
      closeOnEscape: true, 
      searchOnEnter: false, 
      multipleSearch: true 
     } 
    }); 

    tbLockedPartiesHistoryArea.jqGrid('filterToolbar', { 
     ignoreCase: true, 
     searchOperators: true, 
     enableClear: false 
    }); 
    tbLockedPartiesHistoryArea.jqGrid('navGrid', { 
     edit: false, 
     add: false, 
     del: false, 
     refresh: true, 
     refreshtext: "Clear Filter", 
     refreshtitle: "Clear Filter" 
    }); 

}; 

답변

1

감사합니다. 문제는 customSortOperations (here 설명)의 경우에 존재합니다.

나는 지금 the commit를 게시했습니다. 무료 jqGrid의 최신 소스를 GitHub에서 가져 오십시오. 문제는 지금 해결되어야합니다.

+0

안녕하세요, @Oleg! 나는 중복 된 질문을했는지에 대해 걱정했다. 그러나 나의 질문이 도움이된다면 그것은 기쁨이다. 버그가 수정되어 그리드가 완벽하게 작동합니다. 감사합니다. 좋은 하루 되세요! :) – pebble

+0

@pebble : 환영합니다! 새로운 문제 (중복되지 않음)였습니다. 이제 해결되었습니다. 당신도 좋은 하루 보내세요! – Oleg