Angular Fixação de coluna de grade hierárquica
Uma coluna ou várias colunas podem ser fixadas no lado esquerdo ou direito da grade da interface do usuário do Angular. A fixação de coluna no Ignite UI for Angular permite que os usuários finais bloqueiem a coluna em uma ordem de coluna específica, o que permitirá que eles a vejam enquanto rolam horizontalmente a grade hierárquica. A Grade da interface do usuário do Material tem uma interface do usuário de fixação de coluna interna, que pode ser usada por meio da barra de ferramentas da Grade hierárquica para alterar o estado do pino das colunas. Além disso, você pode definir uma interface do usuário personalizada e alterar o estado do pino das colunas por meio da API de fixação de coluna.
Angular Exemplo de fixação de coluna de grade hierárquica
API de fixação de coluna
A fixação da coluna é controlada através da pinned entrada do igx-column. As colunas fixadas são renderizadas no lado esquerdo da Grade Hierárquica por padrão e permanecem fixas por meio da rolagem horizontal das colunas não afixadas no corpo da Grade Hierárquica.
<igx-hierarchical-grid class="hgrid" [data]="localdata" [autoGenerate]="false" [height]="'600px'" [width]="'800px'" #hierarchicalGrid> <igx-column [field]="Artist" [width]="200px" [pinned]="true"></igx-column> <igx-column [field]="Debut" [width]="200px"></igx-column> </igx-hierarchical-grid>
Você também pode usar a Grade pinColumn Hierárquica ou unpinColumn métodos do para fixar ou desafixar colunas pelo nome do IgxHierarchicalGridComponent campo:
this.hierarchicalGrid.pinColumn('Artist'); this.hierarchicalGrid.unpinColumn('Debut');
Ambos os métodos retornam um valor booleano indicando se sua respectiva operação foi bem-sucedida ou não. Normalmente, o motivo pelo qual eles falham é que a coluna já está no estado desejado.
Uma coluna é fixada à direita da coluna fixada mais à direita. A alteração da ordem das colunas fixadas pode ser feita assinando o columnPin evento e alterando a insertAtIndex propriedade dos argumentos do evento para o índice de posição desejado.
<igx-hierarchical-grid class="hgrid" [data]="localdata" [autoGenerate]="false" [height]="'600px'" [width]="'800px'" (columnPin)="columnPinning($event)" #hierarchicalGrid> </igx-hierarchical-grid>
public columnPinning(event) {
if (event.column.field === 'Artist') {
event.insertAtIndex = 0;
}
}
Posição de fixação
Você pode alterar a posição de fixação da coluna por meio da pinning opção de configuração. Ele permite que você defina a posição das colunas como Início ou Fim. Quando definido como Final, as colunas são renderizadas no final da grade, após as colunas desafixadas. As colunas não afixadas podem ser roladas horizontalmente, enquanto as colunas fixadas permanecem fixas à direita.
<igx-hierarchical-grid #grid1 [data]="data" [autoGenerate]="true" [pinning]="pinningConfig"></igx-hierarchical-grid>
public pinningConfig: IPinningConfig = { columns: ColumnPinningPosition.End };
Demo
Além disso, você pode especificar cada local de fixação de coluna separadamente, permitindo fixar colunas em ambos os lados da grade para maior conveniência e otimização mais fácil dos conjuntos de dados. Consulte a demonstração abaixo para obter mais referências. Para fixar uma coluna, selecione uma coluna clicando em um cabeçalho e use os botões de fixação adicionados à barra de ferramentas ou simplesmente arraste uma coluna para outra fixada.
Interface do usuário de fixação de coluna personalizada
Você pode definir sua interface do usuário personalizada e alterar o estado do pino das colunas por meio da API relacionada.
Digamos que, em vez de uma barra de ferramentas, você gostaria de definir ícones de pino nos cabeçalhos de coluna nos quais o usuário final pode clicar para alterar o estado do pino da coluna específica. Isso pode ser feito criando um modelo de cabeçalho para a coluna com um ícone personalizado.
<ng-template igxHeader let-column #pinTemplate>
<div class="title-inner">
<span style="float:left">{{column.header || column.field}}</span>
<igx-icon class="pin-icon" [class.pinned]="column.pinned" [class.unpinned]="!column.pinned" fontSet="fas" name="fa-thumbtack"
(click)="toggleColumn(column)"></igx-icon>
</div>
</ng-template>
<igx-hierarchical-grid class="hierarchicalGrid" [data]="localdata" [autoGenerate]="false"
[height]="'500px'" [width]="'100%'" #hierarchicalGrid>
<igx-column field="CompanyName" header="Company Name" [headerTemplate]="pinTemplate" width="200px" [pinned]="true"></igx-column>
<igx-column field="ContactName" header="Contact Name" [headerTemplate]="pinTemplate" width="150px"></igx-column>
<igx-column field="ContactTitle" header="Contact Title" [headerTemplate]="pinTemplate" width="200px"></igx-column>
<igx-row-island [key]="'Orders'" [autoGenerate]="false">
<igx-column field="OrderDate" header="Order Date" [headerTemplate]="pinTemplate" [dataType]="'date'" width="150px"></igx-column>
<igx-column field="RequiredDate" header="Required Date" [headerTemplate]="pinTemplate" [dataType]="'date'" width="150px"></igx-column>
<igx-column field="ShippedDate" header="Shipped Date" [headerTemplate]="pinTemplate" [dataType]="'date'" width="150px"></igx-column>
<igx-column field="ShipVia" header="Ship Via" [headerTemplate]="pinTemplate" width="150px"></igx-column>
<igx-row-island [key]="'OrderDetails'" [autoGenerate]="false">
<igx-column field="UnitPrice" header="Unit Price" width="150px"></igx-column>
<igx-column field="Quantity" width="150px"></igx-column>
<igx-column field="Discount" width="150px"></igx-column>
</igx-row-island>
</igx-row-island>
</igx-hierarchical-grid>
Ao clicar no ícone personalizado, o estado do pino da coluna relacionada pode ser alterado usando os métodos de API da coluna.
public toggleColumn(col: ColumnType) { col.pinned ? col.unpin() : col.pin(); }
Demo
Limitações de fixação
- Definir larguras de coluna em porcentagem (%) explicitamente faz com que o corpo da Grade Hierárquica e o conteúdo do cabeçalho fiquem desalinhados quando houver colunas fixadas. Para que a fixação de colunas funcione corretamente, as larguras das colunas devem estar em pixels (px) ou atribuídas automaticamente pela Grade Hierárquica.
Referências de API
Recursos adicionais
- Visão geral da grade hierárquica
- Virtualização e desempenho
- Paginação
- Filtragem
- Classificação
- Resumos
- Movimentação de Colunas
- Redimensionamento de colunas
- Escolha