Visão geral dos cabeçalhos de várias colunas do Angular Grid
IgxGrid
suporta multi-column headers
que permite agrupar colunas colocando-as sob vários cabeçalhos comuns. Cada grupo de cabeçalhos de várias colunas pode ser uma representação de combinações entre outros grupos ou colunas na grade da interface do usuário do material.
Angular Grid Multi-column Headers Overview Example
A declaração de Multi-column header
pode ser obtida envolvendo um conjunto de colunas em igx-column-group
um componente com header
o título passado.
<igx-grid [data]="data" [allowFiltering]="true">
<igx-column-group header="Contact Information">
<igx-column sortable="true" resizable="true" field="Phone"></igx-column>
<igx-column sortable="true" resizable="true" field="Fax"></igx-column>
<igx-column sortable="true" resizable="true" field="PostalCode"></igx-column>
</igx-column-group>
</igx-grid>
Para atingir n-th
o nível de cabeçalhos aninhados, a declaração acima deve ser seguida. Portanto, o aninhamento igx-column-group
leva ao resultado desejado.
<igx-grid [data]="data" [allowFiltering]="true" [moving]="true">
<igx-column-group header="General Information">
<igx-column sortable="true" resizable="true" field="CompanyName"></igx-column>
<igx-column-group header="Person Details">
<igx-column [pinned]="false" sortable="true" resizable="true" field="ContactName"></igx-column>
<igx-column sortable="true" resizable="true" field="ContactTitle"></igx-column>
</igx-column-group>
</igx-column-group>
</igx-grid>
Todos os igx-column-group
suportes moving
, pinning
e hiding
.
Note
Quando há um conjunto de colunas e grupos de colunas, a fixação funciona apenas para pais de coluna de nível superior. Mais especificamente, a fixação por aninhado column groups
ou columns
não é permitida.
Observe que, ao usar a fixação com cabeçalhos de várias colunas, todo o grupo é fixado.
Mover-se entre columns
e column groups
é permitido apenas quando eles estão no mesmo nível na hierarquia e ambos estão no mesmo group
.
Quando columns/column-groups
não são encapsulados por corrente group
, o que significa que são de nível columns
superior, é permitido mover-se entre colunas visíveis inteiras.
<igx-grid [data]="data" [allowFiltering]="true" [moving]="true">
<igx-column-group [pinned]="true" header="General Information">
<igx-column sortable="true" resizable="true" field="CompanyName"></igx-column>
</igx-column-group>
<igx-column sortable="true" resizable="true" field="Phone"></igx-column>
<igx-column sortable="true" resizable="true" field="Fax"></igx-column>
<igx-column sortable="true" resizable="true" field="PostalCode"></igx-column>
</igx-grid>
Multi-column Header Template
Cada um dos grupos de colunas da grade pode ser modelado separadamente. O grupo de ng-template
colunas espera uma marca decorada com a igxHeader
diretiva. O ng-template
é fornecido com o objeto de grupo de colunas como um contexto.
...
<igx-column-group header="General Information">
<ng-template igxHeader let-columnGroup>
{{ columnGroup.header | uppercase }}
</ng-template>
...
</igx-column-group>
...
Se você quiser reutilizar um único modelo para vários grupos de colunas, poderá definir a headerTemplate
propriedade do grupo de colunas da seguinte forma:
<ng-template #columnGroupHeaderTemplate let-columnGroup>
{{ columnGroup.header | uppercase }}
</ng-template>
...
<igx-column-group header="General Information" [headerTemplate]="columnGroupHeaderTemplate">
...
</igx-column-group>
<igx-column-group header="Address Information" [headerTemplate]="columnGroupHeaderTemplate">
...
</igx-column-group>
...
Note
Se um cabeçalho de coluna for remodelado e a movimentação da grade estiver habilitada, você terá que definir o atributo arrastável da coluna correspondente como false nos elementos modelados, para que você possa lidar com qualquer um dos eventos aplicados!
<ng-template igxHeader>
<igx-icon [attr.draggable]="false" (click)="onClick()"></igx-icon>
</ng-template>
O exemplo a seguir demonstra como implementar grupos de colunas recolhíveis usando modelos de cabeçalho.
Estilização
Para começar a estilizar o comportamento de classificação, precisamos importar o index
arquivo, onde todas as funções do tema e mixins de componentes residem:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
Seguindo a abordagem mais simples, criamos um novo tema que estende os grid-theme
parâmetros e aceita os $header-background
parâmetros, $header-text-color
, $header-border-width
,and $header-border-style
$header-border-color
.
$custom-theme: grid-theme(
$header-background: #e0f3ff,
$header-text-color: #e41c77,
$header-border-width: 1px,
$header-border-style: solid,
$header-border-color: rgba(0, 0, 0, 0.08)
);
Note
Em vez de codificar os valores de cor como acabamos de fazer, podemos obter maior flexibilidade em termos de cores usando as palette
funções e color
. Consulte o Palettes
tópico para obter orientações detalhadas sobre como usá-los.
A última etapa é incluir os mixins de componentes:
@include css-vars($custom-theme);
Demo
Note
A amostra não será afetada Change Theme
pelo tema global selecionado.
API References
Additional Resources
- Visão geral da grade
- Virtualização e desempenho
- Paginação
- Filtragem
- Classificação
- Resumos
- Redimensionamento de colunas
- Escolha
- Agrupar por