행 그룹핑
Row grouping은 데이터 행들을 하나 이상의 지정한 컬럼의 값을 기준으로 구분시켜 계층적인 구조로 표시합니다. 컬럼 헤더를 panel 영역으로 드래깅하면 그 컬럼으로 grouping 합니다. 또는 GridView.groupBy() 함수를 호출해서 grouping할 수도 있습니다.
pivot, grid, 피벗, 필터, filter
pivot, export
pivot, style, callback, styleCallback
pivot, value, getCellValue
pivot, pivotFields, getPivotFields
컬럼 헤더를 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"
}
}]
});