2012-05-11 4 views
0

고급 필터가있는 jqGrid 4.3.1이 있습니다. 예/아니오 유형과 같은 부울 유형 인 일부 열의 경우 새로운 고급 필터 행을 작성할 때 열 유형을 선택하면 드롭 다운을 표시합니다. 예. 칼럼 2는 IsActive (Boolean) 타입이고 이것이 선택되면 나는 텍스트 박스 대신에 드롭 다운을 보였다.jqGrid 고급 검색 대화 상자 - 드롭 다운 선택이있는 열

var cols = grid.jqGrid("getGridParam", "colModel"); 
for (var i = 0; i < cols.length; i++) { 
if (cols[i].stype && cols[i].stype == "select" && cols[i].searchoptions && cols[i].searchoptions.buildSelect && $.isFunction(cols[i].searchoptions.buildSelect) 
&& !cols[i].searchoptions.dataUrl && !cols[i].searchoptions.value) { 
cols[i].searchoptions.value = cols[i].searchoptions.buildSelect(null); 
} 

4.3 버전 (4.3.1 이전 한 버전)에서 잘 작동하는 데 사용이 코드 문제를 일으키는하지만 지금은 내가 있는지 몰라 다음과 같이있는 jqGrid 고급 필터를 무시 코드는 드롭 다운이 공백으로 표시됩니다. 도움을 주시면 감사하겠습니다.

답변

2

buildSelect 코드를 게시하지 않았으므로 코드가 실패하는 이유를 설명하기가 어렵습니다. 제가 왜 대부분 이해하지 못하는 이유는 당신이 너무 복잡한 코드를 가지고 있기 때문입니다. IsActive 열에 부울 유형이 있고 "예"및 "아니요"값을 가진 드롭 다운으로 사전 검색 대화 상자에 표시하고 그리드에 표시하고 편집 중에 확인란을 선택하면 다음을 수행 할 수 있습니다.

mytemplateCheckbox 당신이

var myCheckboxTemplate = { 
     formatter: "checkbox", align: "center", width: 20, 
     edittype: "checkbox", editoptions: { value: "1:0" }, 
     stype: "select", searchoptions: { sopt: ["eq", "ne"], value: "1:Yes;0:No" } 
    }; 

처럼 기술 된 방법 내가 영구적으로 사용하고 아주 잘 작동을 정의

{ name: "IsActive", template: myCheckboxTemplate } 

. 위의 코드와 유일한 차이점은 "checkbox"대신 "clickableCheckbox" 포매터를 사용한다는 것입니다. 원하는 경우 here에서 다운로드 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 정말로 고민하고있는 새로운 질문을 추가했다. ..http : //stackoverflow.com/questions/10579864/jqgrid-column-selector-inline-rather-than-in-dialog – chugh97

+0

내 빌드 선택 함수가 함수에 매핑된다. folowing 구현 return ": All, true : True, false : False"; – chugh97

+0

@ chugh97 : 어떤 의미에서 ('dataUrl' URL에서) 서버에서 정적 데이터를 가져 와서 정적 값을 가진 select로 변환해야합니까? 게다가'buildSelect'는' HTML 조각을 생성해야합니다 : All : true : True; 'value 속성의 값으로 사용됩니다. 검색 대화 상자에서': All;'을 사용하는 것은 좋지 않습니다. 모두 이상하게 보입니다 ... – Oleg

관련 문제