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: boolean
해당 조건에 맞는 필드들을 전부 검색할 건지의 여부
상세 설명
false
면 지정된 fields중 일치하는 필드가 있으면 검색을 종료한다.
기본값
true
select: boolean
검색된 행 focus 여부
상세 설명
true
로 지정하면 검색된 행이 있을 때 그 행을 선택하고, 현재 표시된 범위 밖이면 표시되도록 스크롤한다.
GridBase.searchItem() 에서만 사용 가능하다.
기본값
true
콜백 정보
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);