SearchOptions

행 검색 관련 유연한 설정 정보 모델

상세 설명

GridBase.searchItem()에서 사용된다.

LocalDataProvider.searchDataRow(), LocalTreeDataProvider.searchDataRow() 에서 사용될 경우, 필터링 되었거나 행 그룹핑 된 경우 감춰진 행들은 찾지 않는다.

예제 코드

function searchItemHandler() {
    let values = ["PR20012392", "QF24212112"]
    let fields = [ "RequestType", "ServiceCode" ];
    let startFieldIndex = fields.indexOf(grid.getCurrent().fieldName) + 1;
    let options = {
         fields : fields,
         values: values,
         startIndex : grid.getCurrent().itemIndex,
         startFieldIndex : startFieldIndex,
         wrap : true,
         caseSensitive : false,
         partialMatch : true
    }
    let index = grid.searchCell(options);
    grid.setCurrent(index);
}

프로퍼티 정보

allFields


allFields: boolean

해당 조건에 맞는 필드들을 전부 검색할 건지의 여부

상세 설명

false면 지정된 fields중 일치하는 필드가 있으면 검색을 종료한다.

기본값

true

caseSensitive


caseSensitive: boolean

대소문자를 구분하여 검색할지의 여부

기본값

false

fields


fields: string[]

검색할 필드 목록

상세 설명

필드명 또는 필드 인덱스로 지정 가능.

parentId


parentId: number

상위트리의 행 고유 번호 LocalTreeDataProvider 에서만 사용 가능하다.

partialMatch


partialMatch: boolean

포함되는 것도 검색할지 여부

기본값

false

select


select: boolean

검색된 행 focus 여부

상세 설명

true로 지정하면 검색된 행이 있을 때 그 행을 선택하고, 현재 표시된 범위 밖이면 표시되도록 스크롤한다.

GridBase.searchItem() 에서만 사용 가능하다.

기본값

true

startIndex


startIndex: number

검색 시작 행

기본값

0

values


values: string[]

fields 에 지정한 각 필드에 해당하는 순서에 맞게 배열된 검색 조건값

wrap


wrap: boolean

마지막 행까지 해당하는 행이 없으면 첫 행부터 다시 검색할 것인지 여부

콜백 정보

compareCallback


compareCallback: CompareCallback

사용자 정의 조건을 위한 콜백

기본 값

null

예제 코드

const f = function(v1, v2, sensitive, partialMatch) {
     if (v1 === v2) {
          return true;
     }
     let s1 = String(v1);
     let s2 = v2 == null ? undefined : String(v2);
     if (!s1 && !s2) {
          return true;
     }
     if (!s1 || !s2) {
          return false;
     }
     if (!caseSensitive) {
          s1 = s1.toLowerCase();
          s2 = s2.toLowerCase();
     }
     if (partialMatch) {
     	    return s2.indexOf(s1) >= 0;
     } else {
     	    return s1 == s2;
     }
}

let options = {
         fields : fields,
         values : values,
         compareCallback: f
}

let index = grid.searchItem(options);