데이터 필터링(Filtering)
그리드 FilteringOptions.enabled 가 true이고, 컬럼에 filter들이 설정되면 컬럼 헤더에 필터 핸들이 표시되고, 사용자는 그 핸들을 클릭해서 표시되는 필터 리스트를 이용 컬럼 별로 데이터를 필터링할 수 있습니다.
한 컬럼 내에서 복수 필터가 선택되면 필터셋 중 하나의 필터 조건에만 해당되어도 행들이 표시됩니다. 하지만 여러 컬럼에 필터가 설정되면 모든 컬럼의 필터셋에 해당되는 행들만이 표시됩니다.
필터 등록, 필터 제거
컬럼에 setFilters()로 컬럼필터를 적용하고 clearFilters()로 필터를 제거할 수 있습니다.
//필터 적용
var filters = [
{
name: "모잠비크",
criteria: "value = '모잠비크'"
},
{
name: "캐나다",
criteria: "value = '캐나다'"
}
//...생략...
];
gridView.setColumnFilters("KorCountry", filters);
//필터 제거
gridView.clearColumnFilters("KorCountry");
필터 추가 등록, 일부 제거
기존 필터 목록에 추가로 필터를 등록하거나 필터를 제거 할 수 있습니다.
투자국가의 기존 필터 목록에 추가로 '우크라이나', '브라질', '페루'를 추가해보도록 하겠습니다. 그리고 '모잠비크', '캐나다'는 제거해보도록 하겠습니다.
//필터 추가 등록
var filters = [
{
name: "우크라이나",
criteria: "value = '우크라이나'",
active: false
},
{
name: "브라질",
criteria: "value = '브라질'",
active: true
},
{
name: "페루",
criteria: "value = '페루'"
}
];
var overwrite = true; // false면 기존에 같은 이름의 필터가 있을 때 예외 발생.
gridView.addColumnFilters("KorCountry", filters, overwrite);
//필터 모잠비크 캐나다 제거
gridView.removeColumnFilters("KorCountry", ["모잠비크", "캐나다"]);
필터 적용, 필터 해제
특정 필터나 모든 필터들을 적용하고 해제할 수 있습니다.
//모잠비크, 캐나다 필터 적용
gridView.activateColumnFilters("KorCountry", ["모잠비크", "캐나다"], true);
//모잠비크 적용해제
gridView.activateColumnFilters("KorCountry", ["모잠비크"], false);
//모든필터 적용
gridView.activateAllColumnFilters("KorCountry", true);
//모든필터 적용해제
gridView.activateAllColumnFilters("KorCountry", false);
필터 숨기기, 숨김 해제
등록되어 있는 필터 목록 중 특정 필터나 모든 필터들을 숨기거나 숨김 해제 할 수 있습니다. 투자 국가의 모잠비크, 캐나다 필터를 숨기고, 모잠비크 필터를 숨김 해제 하는 것과 모든 필터들을 숨기고 숨김 해제해보도록 하겠습니다.
//모잠비크, 캐나다 숨기기
gridView.hideColumnFilters("KorCountry", ["모잠비크", "캐나다"], true);
//모잠비크 숨김 해제
gridView.hideColumnFilters("KorCountry", ["모잠비크"], false);
//모든필터 숨기기
gridView.hideAllColumnFilters("KorCountry", true);
//모든필터 숨김 해제
gridView.hideAllColumnFilters("KorCountry", false);
필터 토글(toggle)
해당 컬럼의 지정한 필터들을 토글한다. 투자 국가의 모잠비크, 캐나다 필터를 토글하는것과 모든 필터를 토글해 보도록 하겠습니다.
//모잠비크, 캐나다 토글하기
gridView.toggleColumnFilters("KorCountry", ["모잠비크", "캐나다"]);
//모든필터 토글하기
gridView.toggleAllColumnFilters("KorCountry");
필터 조건 함수로 설정
필터링 조건을 함수형태로 설정합니다.
//filter 함수 set
var filterFunc = function(dataProvider, dataRow, fieldName, filter, value) {
if (filter.tag == 1 && value == "모잠비크") {
return true;
} else if (filter.tag == 2 && value == "캐나다") {
return true;
} else if (filter.tag == 3 && value == "우크라이나") {
return true;
} else {
return false;
}
};
var filters = [
{
name: "filter1",
text: "모잠비크",
tag: 1,
filterCallback: filterFunc
},
{
name: "filter2",
text: "캐나다",
tag: 2,
filterCallback: filterFunc
},
{
name: "filter3",
text: "우크라이나",
tag: 3,
filterCallback: filterFunc
}
];
gridView.setColumnFilters(filters);