new SpanGroupingField()
SpanGroupingCollection에서 그룹핑을 할 개별 필드정보를 저장하는 컴포넌트입니다.
Example
레이아웃은 다음과 같은 형식으로 작성됩니다.
<dataProvider>
<SpanGroupingCollection source="{$gridData}">
<grouping>
<Grouping>
<SpanGroupingField name="Year" rowSpanable="false" treeCellAttribute="{treeCellAttr}"/>
<SpanGroupingField name="Quarter" colNum="1">
<summaries>
<SpanGroupingSummaryRow cellAttribute="{headCellAttr}" label="분기합계" labelDataField="Year" rowAttribute="{sumRowAttr}">
<fields>
<SpanGroupingSummaryField dataField="Seoul" cellAttribute="{sumCellAttr}" colNum="3"/>
<SpanGroupingSummaryField dataField="Busan" cellAttribute="{sumCellAttr}" colNum="4"/>
<SpanGroupingSummaryField dataField="Incheon" cellAttribute="{sumCellAttr}" colNum="5"/>
</fields>
</SpanGroupingSummaryRow>
</summaries>
</SpanGroupingField>
</Grouping>
</grouping>
<summaries>
<SpanGroupingSummaryRow cellAttribute="{headCellAttr}" label="전체합계" labelDataField="Year" rowAttribute="{sumRowAttr}">
<fields>
<SpanGroupingSummaryField dataField="Seoul"/>
<SpanGroupingSummaryField dataField="Busan"/>
<SpanGroupingSummaryField dataField="Incheon"/>
</fields>
</SpanGroupingSummaryRow>
</summaries>
</SpanGroupingCollection>
</dataProvider>
Members
-
caseInsensitiveboolean
-
그룹핑시 대소문자 구분여부.
대소문자 구분을 하지 않을 경우 true를 지정합니다.- Default Value:
- false
-
cellAttributeobject
-
그룹핑한 cell에 대한 속성.
- See:
-
colNumnumber
-
그룹핑 결과를 적용할 그리드의 컬럼 번호.
-1일 경우 그룹핑하는 fields의 배열 순서에 따라 넣어지며, 지정될 경우 그리드의 해당 컬럼에 병합정보가 저장됩니다.- Default Value:
- -1
-
descendingboolean
-
그룹핑시 역순으로 정렬할지 여부
- Default Value:
- false
-
groupingJsFunctionfunction
-
그룹핑할 라벨을 결정하는 함수 입니다.
기본적으로 그룹핑은name
속성에서 지정한 필드의 변화에 따라 수행됩니다.
하지만 다른 데이타와 연관되는 경우나 단순 문자열 비교이상이 필요한 경우,groupingJsFunction
속성에 콜백 함수를 지정하여 원하는 그룹핑을 수행할 수 있습니다.콜백함수는 달을 숫자에서 문자열로 바꾸거나 다른 여러 필드를 기준으로 값을 변경시킬수 있습니다.
- Since:
- 5.0
- See:
-
- 자바스크립트에서 사용할 때는 groupingFunction에 넣어주도록 합니다.
Examples
groupingJsFunction 함수의 파라메터는 다음과 같습니다.
function groupingJsFunction(item, field) - item : 해당 행의 data 객체 - field : 함수를 정의한 SpanGroupingField 객체
예를 들어, 그룹핑할 필드의 첫번째 글짜로 그룹핑을 하는
groupingJsFunction
을 구현한다면 다음과 같습니다.function groupingFunc(item, field) { return item[field.name].toString().substr(0, 1); }
-
namestring
-
그룹핑할 필드 명.
-
numericboolean
-
그룹핑할 필드의 데이터가 숫자인지 여부.
false이면 숫자도 문자로 처리되어 100이 99보다 먼저 나타나게 됩니다.- Default Value:
- false
-
rowSpanableboolean
-
그룹핑시 그룹으로 묶인 행들에 대해 병합을 수행할지 여부를 나타냅니다.
true 이면 해당 행들을 병합하며 cellAttribute속성이 설정되어 있는 경우 해당 병합셀의 속성으로 cellAttribute를 설정하게 됩니다. 이때 rowSpan값은 병합된 행의 수로 변경됩니다.
그룹핑할 필드를 한 개만 지정하는 경우에는 treeColumn에서도 병합에 문제가 없으나 여러 개의 필드를 지정할 경우에는 문제가 발생하므로 첫번째 그룹핑 필드에 대해서는 false로 줘야 합니다.- Default Value:
- true
-
summariesArray
-
그룹핑합 필드의 합계 행을 정의한 SpanSummaryRow 인스턴스의 배열
한개 또는 2개이상의 SpanSummaryRow를 정의할 수 있습니다. -
treeCellAttributeobject
-
그룹핑되는 row의 제어를 위한 노드에 들어갈 cell 속성.
그룹핑에 의해 합쳐진 행들을 접었다 펼쳤다 하기 위해 만들어지는 treeNode에 적용할 cell 속성입니다.- See: