728x90
LinkedDataList.setColumnFilter를 활용
dataCollection
<w2:dataCollection baseNode="map">
<w2:dataMap baseNode="map" id="dma_SearchParam">
<w2:keyInfo>
<w2:key id="largeCategory" name="대분류" dataType="text"></w2:key>
<w2:key id="mediumCategory" name="중분류" dataType="text"></w2:key>
<w2:key id="item" name="항목" dataType="text"></w2:key>
</w2:keyInfo>
</w2:dataMap>
<w2:dataList baseNode="list" repeatNode="map" id="dlt_codes" saveRemovedData="true">
<w2:columnInfo>
<w2:column id="largeCategory" name="대분류" dataType="text"></w2:column>
<w2:column id="largeCategoryName" name="대분류명" dataType="text"></w2:column>
<w2:column id="mediumCategory" name="중분류" dataType="text"></w2:column>
<w2:column id="mediumCategoryName" name="중분류명" dataType="text"></w2:column>
<w2:column id="item" name="항목" dataType="text"></w2:column>
<w2:column id="itemName" name="항목명" dataType="text"></w2:column>
</w2:columnInfo>
</w2:dataList>
<w2:linkedDataList id="linked_dlt_codes" baseNode="vector" repeatNode="map" bind="dlt_codes">
</w2:linkedDataList>
<w2:linkedDataList id="linked_dlt_codes2" baseNode="vector" repeatNode="map" bind="dlt_codes">
</w2:linkedDataList>
</w2:dataCollection>
script
removeColumnFilter를 넣지 않으면 필터 조건이 계속 and 로 추가되는 것 같음
newValue가 "" 일때는 전체로 처리
아래 분류들도 filter를 적용하기 위해 switch문 중간에 break;를 뺌
// 초기화 부분
sch_largeCategory.setNodeSet("data:dlt_codes", "largeCategoryName", "largeCategory");
sch_wkspCd.setNodeSet("data:linked_dlt_codes", "mediumCategoryName", "mediumCategory");
sch_wkgdCd.setNodeSet("data:linked_dlt_codes2", "itemName", "item");
dma_SearchParam.bind('onmodelchange', scwin.fn_dma_searchParam_onmodelchange);
..
scwin.fn_dma_searchParam_onmodelchange = function(info){
var key = info.key;
var oldValue = info.oldValue;
var newValue = info.newValue;
switch (key) {
case "largeCategory":
linked_dlt_codes.removeColumnFilter(key);
linked_dlt_codes.setColumnFilter({type:'func', colIndex:key
, key:function(e){return newValue == "" || newValue == e;}, condition:"and"});
case "mediumCategory":
linked_dlt_codes2.removeColumnFilter(key);
linked_dlt_codes2.setColumnFilter({type:'func', colIndex:key
, key:function(e){return newValue == "" || newValue == e;}, condition:"and"});
break;
default:
break;
}
}
728x90
'Programming > Websquare' 카테고리의 다른 글
조회된 데이터리스트 분류 단계별 필터링 예시2(GridView) (0) | 2022.12.13 |
---|