2012-05-22 4 views
1

나는이 같은 colModel 항목에 봉착 : 좋은만큼 그것이 FilterToolBar에 사용되는로 일하고덮어 쓰기 데이터 드롭 다운 값 (multipleSearch)

{name:'status', index:'status', sorttype:"text", xmlmap:"STATUS", width:"90", stype: 'select', searchoptions:{sopt: ['eq','ne'], value:':all;Hold:Hold;4-Eye-Check:4-Eye-Check;Approved:Approved;Rejected:Rejected;Closed:Closed'}}, 

그게 전부,하지만 난 NavGridSearch 임 실행을 열면 문제로. "all"항목이 더 이상 작동하지 않습니다. FilterToolBar의 쿼리가 내 비어있는 것을 무시하는 것처럼 보이지만 NavGridSearch는 비어 있습니다.

FilterToolBar 또는 NavGridSearch의 모든 상태 항목을 검색하더라도 모든 항목을 전달하는 빈 문자열 대신 사용할 수있는 임의의 와일드 카드 기호가 있습니까?

나는 사전에 최신하는 OpenSource있는 jqGrid 해방 (4.3.2)

감사 사용!

답변

0

'all'기준에 대한 사용 사례를 이해하려고합니다. 'all'의 목적은 그리드가이 검색 기준을 무시하고이 값에 관계없이 모든 행을 반환하도록하려는 것입니다. 그렇다면 사용자가 검색 기준을 선택하는 이유는 무엇입니까? 사용자가 검색 기준을 제거하면 동일한 효과가 나타납니다. 또는 나는 무엇인가 놓치고 있냐?


업데이트

그리드는 검색 폼의 선택을 작성하는 기능 createEl : function(eltype,options,vl,autowidth, ajaxso)를 사용합니다. 불행하게도이 선택은 검색 값이 ""이고 모든 행과 일치하지 않을지라도 항상 all 기준을 목록에 추가합니다. 한 가지 해결 방법은 값이 비어있는 선택 옵션을 건너 뛰도록 모눈을 수정하는 것입니다. 여기

else if (sv.length > 1 && sv[0].length === 0) continue; 

createEl의 맥락에서이다 : 소스 파일을 사용하면 당신은 all 옵션을 건너 뛰려면 다음 코드를 추가 할 수 있습니다 jquery.jqGrid.src.js 당신이 축소 된 버전이 필요하면

   if(typeof options.value === 'string') { 
        so = options.value.split(delim); 
        for(i=0; i<so.length;i++){ 
         sv = so[i].split(sep); 
         if(sv.length > 2) { 
          sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep); 
         } else if (sv.length > 1 && sv[0].length === 0) continue; // <-- Change this line 
         ov = document.createElement("option"); 
         ov.setAttribute("role","option"); 
         ov.value = sv[0]; ov.innerHTML = sv[1]; 
         elem.appendChild(ov); 
         if (!msl && ($.trim(sv[0]) == $.trim(vl) || $.trim(sv[1]) == $.trim(vl))) { ov.selected ="selected"; } 
         if (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";} 
        } 

이 업데이트를 " src "버전의 jqGrid를 실행 한 다음 Google Closure Compiler를 통해 실행하십시오.

이것이 일반적인 목적의 변경인지 확신 할 수 없기 때문에 지금 당장은이를 해결 방법이라고 부릅니다. jqGrid를 패치 할 수 있도록 장기간 더 나은 해결책을 찾아야합니다. 나중에이 문제를 다시 살펴 보려고합니다.

도움이 되었습니까?

+0

안녕 저스틴 답장을 보내 주셔서 감사합니다.

+0

알기. 그러나이 예제는 필터 도구 모음에 대한 것입니다. 팝업 필터 대화 상자에 "모두"가 정말로 필요합니까? 이 화면에서는 필터 기준이 필요 없으므로 해당 열에 대한 필터를 전혀 추가하지 않도록 선택할 수 있습니다. 또는 나는 무엇인가 놓치고 있냐? –

+0

안녕 저스틴, 사실이 열은 팝업 검색을 사용해야하는 이유입니다. 사용자는 한 번에 하나의 상태 이상을 필터링 할 수있는 가능성이 있어야합니다.불행히도 필터 툴바에 대해 "다중 드롭 다운 필터"동작을 구현하는 솔루션을 찾지 못했거나 하나입니까? 도와 주셔서 감사합니다. – dontworry