행 그룹핑
Row grouping은 데이터 행들을 하나 이상의 지정한 컬럼의 값을 기준으로 구분시켜 계층적인 구조로 표시합니다. 컬럼 헤더를 panel 영역으로 드래깅하면 그 컬럼으로 grouping 합니다. 또는 GridView.groupBy() 함수를 호출해서 grouping할 수도 있습니다.
컬럼 헤더를 panel 영역으로 드래깅하면 그 컬럼으로 grouping 합니다.
또는 GridView.groupBy() 함수를 호출해서 grouping할 수도 있습니다.
1
2
3
4
5
var fieldNames = [];
$("input[name='chkFieldName']:checked").each( function() {
fieldNames.push($(this).val());
});
gridView.groupBy(fieldNames);
Row grouping되면 Javascript 그리드의 onGrouping(), onGroupingChanged() 이벤트가 발생됩니다.
1
2
3
4
5
6
7
8
gridView.onGrouping = function (grid){
alert("onGrouping 이벤트가 발생했습니다. true를 반환합니다.");
return true;
}
gridView.onGroupingChanged = function (grid) {
alert("onGroupingChanged : isGrouped = " + grid.isGrouped() + ", isMergedGrouped = " + grid.isMergedGrouped());
};
아래 옵션들의 설정에 따라 각 행 그룹들은 그룹 푸터
를 표시할 수 있습니다.
그룹 푸터에 표시하는 텍스트는 GridBase.setRowGroup 함수에 전달되는 설정 개체의 footerStatement
값으로 지정합니다.
또한, summary mode를 통해 각 행 그룹의 푸터에 표시할 수 있는 값의 종류를 지정할 수도 있습니다.
footerStatement: 적용
1
2
3
4
5
var statement = $('#selFooterStatement').val();
statement = statement ? statement : null;
gridView.setRowGroup({
footerStatement: statement
});
아래 옵션들의 설정에 따라 각 행 그룹들은 그룹 헤더
를 표시할 수 있습니다.
그룹 헤더에 표시하는 텍스트는 GridBase.setRowGroup 함수에 전달되는 설정 개체의 headerStatement
값으로 지정합니다.
headerStatement
의 기본값은 "${groupField}: ${groupValue} - ${rowCount} rows"
입니다.
headerStatement 속성으로는 아래와 같은 값들을 설정할 수 있습니다.
headerStatement: 적용
1
2
3
4
var statement = $('#selHeaderStatement').val();
gridView.setRowGroup({
headerStatement: statement
});
GroupingOptions()함수로 RowGrouping시 적용될 옵션을 설정합니다.
lindear(panel영역에 표시되는 column을 일렬로 배치)
removeIncludeLower(그룹핑 해제시 하위 그룹까지 해제)
expandWhenGrouping(그룹핑시 그룹의 펼침 여부)
1
2
3
4
5
6
7
8
9
10
gridView.setGroupingOptions({
enabled: true,
prompt: "컬럼 헤더를 이 곳으로 끌어다 놓으면 그 컬럼으로 그룹핑합니다.",
linear: false,
removeIncludeLower: false,
expandWhenGrouping: true,
toast:{
visible: true
}
});
setRowGroup()함수로 RowGrouping과 관련된 영역들의 표시 방법 등에 대한 설정합니다.
summaryMode:
expandedAdornments:
collapsedAdornments:
1
2
3
4
5
6
gridView.setRowGroup({
summaryMode: "aggregate",
sorting:true,
footerStatement: "행 그룹핑된 컬럼의 풋터입니다.",
footerCellMerge: true
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
gridView.setRowGroup({
levels: [{
headerStyles: {
background: "#FF008800",
foreground: "#FFFFFFFF",
fontBold: true
},
footerStyles: {
background: "#FF008800",
foreground: "#FFFFFFFF",
fontBold: true
},
headerBarStyles: {
background: "#FF008800"
},
footerBarStyles: {
background: "#FF008800"
},
barStyles: {
background: "#FF008800"
}
},{
headerStyles: {
background: "#FF00CC00"
},
footerStyles: {
background: "#FF00CC00"
},
headerBarStyles: {
background: "#FF00CC00"
},
footerBarStyles: {
background: "#FF00CC00"
},
barStyles: {
background: "#FF00CC00"
}
},{
headerStyles: {
background: "#FF00FF00"
},
footerStyles: {
background: "#FF00FF00"
},
headerBarStyles: {
background: "#FF00FF00"
},
footerBarStyles: {
background: "#FF00FF00"
},
barStyles: {
background: "#FF00FF00"
}
},{
headerStyles: {
background: "#4400FF00"
},
headerBarStyles: {
background: "#4400FF00"
},
barStyles: {
background: "#4400FF00"
}
}]
});