2010-06-05 2 views
4

필터 값을 설정하는 방법은 여기 link text에서 설명합니다. 두 가지 요구 사항이 있습니다.
1. 기본값은 비워 둘 필요가 있습니다. DefaultValue가 설정되어 있지 않으면 필터가 비어 있지만 내 경우에는 그렇지 않습니다.
2. 내 가치에서 ':'를 벗어나는 방법. 문자 ':'및 ';' 인덱스와 값을 구분하는 데 사용됩니다. 하지만, 내 값 문자열에 ':'가 포함되어 있습니다 (예 : 검색 옵션 : {값 : "1 : '레벨 : 1'"}, 레벨 : 1이 첫 번째 값 임). 탈출하는 방법 : 가치 부분. 나는 \,/등을 시도했다.JQgrid - 검색 옵션 (값 부분)에서 ':'이스케이프

고마워.

편집 : 다른 방법이없는 경우 항목 1이 해결 될 수 있습니다. 값에 ALL 항목을 추가로 설정하고 기본값을 사용할 수 있습니다.

+0

내 대답으로 문제가 해결되는지 아닌지 묻고 싶습니다. – Oleg

답변

4

당신입니다 오른쪽이 배치 이스케이프 문자를 사용하는 것은 불가능 보인다 ':'searchoptionsvalue의 내부는 문자열처럼 정의하는 경우 :

searchoptions:{value:"1:'Level: 1'"} 

value의 설정의 또 다른 형태가있다 searchoptions - 대상 양식. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:search_config#colmodel_options 아래에 설명되어 있습니다. 예를 들어 다음과 같은 구문을 사용할 수 있습니다.

searchoptions:{value:{'1:': 'Level: 1;', ':2:;': 'Level: 2;'}} 

"Level : 1;" 및 "Level : 2;" 해당 값 "1 :"및 ": 2 :;"가 표시됩니다. 그것은 작동합니다.

+0

위의 솔루션을 테스트 한 적은 없지만 이미 다른 접근법을 사용했기 때문에이를 qn ...으로 대답 할 수 있습니다. – bsr

+0

FWIW 공식 jqGrid 블로그에는 key : value 옵션의 구분 기호로 첫 번째 ':'만 고려한 해결 방법이 있다고 나와 있습니다 (옵션을 구분하는 ';'사이에 포함 된 모든 텍스트 내에서). 문자열 안에 콜론이 여러 개 있고 첫 번째 문자열 만 구분 기호로 간주됩니다. 자세한 정보는 http://www.trirand.com/blog/?page_id=393/help/problem-using-colon-in-editoptions- 문자열 대신 객체를 사용하더라도 유효하지만 목록의 원래 순서를 잃어 버리는 단점이 있습니다. (색인을 기준으로 항상 주문합니다) – DiegoDD

+0

@DiegoDD : 대답은 6 세입니다. 'searchoptions'는 디폴트 값'':''과'delimiter'를 갖는'separator'와''separator'' 두 가지 속성을 지원합니다 :'; "'. 값에':'가 포함될 수 있다는 것을 아는 경우, 주 값들 안에 있지 않은 대체 기호를 가진'separator '. – Oleg

0

동일한 문제가있어서 유일한 옵션은 searchoptions 개체를 사용하는 것이 었습니다. 그러나 개체를 정의 할 수 없도록 프로그래밍 방식으로 목록을 작성해야했습니다. 아래 그림과 같이

따라서, 나는 그것을 구문 분석 후 JSON 문자열로 목록을 작성하고 사용하기로 결정 : searchSelectFormat이

의 형식으로되어

searchoptions: { 
 
    value: $.parseJSON("{" + searchSelectFormat.join(",") + "}"), 
 
    sopt: ['eq'] 
 
    }

'"' + data + '":"' + data + '"';

"" '+ item +' ":"+ + item + ' "'