React 그리드 다중 열 헤더 개요
React Grid의 Ignite UI for React 열을 공통 다중 헤더 아래에 배치하여 그룹화할 수 있습니다. IgrGrid
의 각 다중 열 헤더 그룹은 다른 그룹 또는 열 간의 조합을 나타낼 수 있습니다. 이 기능은 가로로 스크롤하는 것이 번거로울 수 있는 대규모 데이터 세트를 처리할 때 특히 유용합니다.
React Grid Multi-Column Headers Example
다중 열 헤더의 선언은 IgrHeader
제목 정보가 전달된 IgrColumnGroup
구성 요소에 열 집합을 래핑하여 수행됩니다.
<IgrGrid allowFiltering="true">
<IgrColumnGroup header="Contact Information">
<IgrColumn sortable="true" resizable="true" field="Phone"></IgrColumn>
<IgrColumn sortable="true" resizable="true" field="Fax"></IgrColumn>
<IgrColumn sortable="true" resizable="true" field="PostalCode"></IgrColumn>
</IgrColumnGroup>
</IgrGrid>
n-th
수준의 중첩된 헤더를 얻으려면 위의 선언을 따라야 합니다. 따라서 IgrColumnGroup
중첩하면 원하는 결과를 얻을 수 있습니다.
<IgrGrid height="600px" allowFiltering="true">
<IgrColumnGroup header="General Information">
<IgrColumn movable="true" sortable="true" resizable="true" field="CompanyName"></IgrColumn>
<IgrColumnGroup movable="true" header="Person Details">
<IgrColumn movable="true" pinned="false" sortable="true" resizable="true" field="ContactName"></IgrColumn>
<IgrColumn movable="true" sortable="true" resizable="true" field="ContactTitle"></IgrColumn>
</IgrColumnGroup>
</IgrColumnGroup>
</IgrGrid>
Every IgrColumnGroup
supports moving, pinning and hiding.
[!Note] When there is a set of columns and column groups, pinning works only for top level column parents. More specifically pinning per nested column groups or columns is not allowed.
Moving between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the samegroup
.
Whencolumns/column-groups
are not wrapped by currentgroup
which means they are top levelcolumns
, moving is allowed between whole visible columns.
<IgrGrid height="600px" allowFiltering="true">
<IgrColumnGroup movable="true" pinned="true" header="General Information">
<IgrColumn movable="true" sortable="true" resizable="true" field="CompanyName"></IgrColumn>
</IgrColumnGroup>
<IgrColumn sortable="true" resizable="true" field="Phone"></IgrColumn>
<IgrColumn sortable="true" resizable="true" field="Fax"></IgrColumn>
<IgrColumn sortable="true" resizable="true" field="PostalCode"></IgrColumn>
</IgrGrid>
Multi-Column Header Template
<IgrColumnGroup header="Contact Information" headerTemplate={groupHeaderTemplate}></IgrColumnGroup>
function groupHeaderTemplate(e: { dataContext: IgrColumnTemplateContext }) {
const column = e.dataContext.column as IgrColumnGroup;
return (
<div>
<span style={{ float: "left" }}>{column.header.toUpperCase()}</span>
</div>
);
}
[!Note] If a header is re-templated and the corresponding column group is movable, you have to set the draggable attribute to false on the templated elements, so that you can handle any of the events that are applied!
function columnHeaderTemplate(e: { dataContext: IgrColumnTemplateContext }) {
const column = e.dataContext.column as IgrColumnGroup;
return (
<span onClick={onClick}>
<IgrIcon data-draggable="false"></IgrIcon>
</span>
);
}
다음 샘플은 헤더 템플릿을 사용하여 축소 가능한 열 그룹을 구현하는 방법을 보여줍니다.
Styling
사전 정의된 테마 외에도 사용 가능한 CSS 속성 중 일부를 설정하여 그리드를 추가로 사용자 정의할 수 있습니다. 일부 색상을 변경하려면 먼저 그리드에 대한 클래스를 설정해야 합니다.
<IgrGrid className="grid"></IgrGrid>
그런 다음 관련 CSS 속성을 이 클래스로 설정합니다.
.grid {
--ig-grid-header-background: #e0f3ff;
--ig-grid-header-text-color: #e41c77;
--ig-grid-header-border-width: 1px;
--ig-grid-header-border-style: solid;
--ig-grid-header-border-color: rgba(0, 0, 0, 0.08);
}
Demo
API References
Additional Resources
우리 커뮤니티는 활동적이며 항상 새로운 아이디어를 환영합니다.