Angular Classificação hierárquica em grade
No Ignite UI for Angular Hierarchical Grid, a classificação de dados é habilitada em um nível por coluna, o que significa que a igx-hierarchical-grid pode ter uma combinação de colunas classificáveis e não classificáveis. A execução de ações de classificação angular permite alterar a ordem de exibição dos registros com base em critérios especificados.
Note
Até agora, o agrupamento/classificação funcionava em conjunto. Na versão 13.2, é introduzido um novo comportamento que separa o agrupamento da classificação. Por exemplo - limpar o agrupamento não limpará as expressões de classificação na grade ou vice-versa. Ainda assim, se uma coluna for classificada e agrupada, as expressões agrupadas terão precedência.
Angular Hierarchical Grid Sorting Overview Example
Além disso, há um menu de contexto personalizado adicionado para ordenação usando igx-hierarchical-grid 'scontextMenu Saída.
Isso é feito via entradasortable. Com a ordenação Hierárquica em Grade, você também pode definir asortingIgnoreCase propriedade para realizar ordenação sensível a maiúsculas e minúsculas:
<igx-column field="ProductName" header="Product Name" [dataType]="'string'" sortable="true"></igx-column>
Sorting Indicators
Ter uma certa quantidade de colunas classificadas pode ser realmente confuso se não houver indicação da ordem classificada.
O IgxHierarchicalGrid fornece uma solução para esse problema indicando o índice de cada coluna classificada.
Sorting through the API
Você pode ordenar qualquer coluna ou combinação de colunas através da API Hierarchical Grid usando o método Hierarchical Gridsort:
import { SortingDirection } from 'igniteui-angular/grids/core';
// import { SortingDirection } from '@infragistics/igniteui-angular'; for licensed package
// Perform a case insensitive ascending sort on the ProductName column.
this.hierarchicalGrid.sort({ fieldName: 'ProductName', dir: SortingDirection.Asc, ignoreCase: true });
// Perform sorting on both the ProductName and Price columns.
this.hierarchicalGrid.sort([
{ fieldName: 'ProductName', dir: SortingDirection.Asc, ignoreCase: true },
{ fieldName: 'Price', dir: SortingDirection.Desc }
]);
Note
A ordenação é realizada usando nossoDefaultSortingStrategy algoritmo. QualquerIgxColumnComponent ouISortingExpression pode usar uma implementação personalizada doISortingStrategy algoritmo como substituto. Isso é útil quando a ordenação personalizada precisa ser definida para colunas modelo complexas ou colunas de imagem, por exemplo.
Assim como no comportamento de filtragem, você pode limpar o estado de ordenação usando oclearSort método:
// Removes the sorting state from the ProductName column
this.hierarchicalGrid.clearSort('ProductName');
// Removes the sorting state from every column in the Hierarchical Grid
this.hierarchicalGrid.clearSort();
Note
AsortStrategy grade hierárquica é de tipo diferente em comparaçãosortStrategy com a da coluna, pois funcionam em escopos diferentes e expõem parâmetros distintos.
Note
A operação de classificação NÃO altera a fonte de dados subjacente da Grade Hierárquica.
Initial sorting state
É possível definir o estado inicial de ordenação da Grade Hierárquica passando um array de expressões de ordenação para asortingExpressions propriedade da Grade Hierárquica.
public ngOnInit(): void {
this.hierarchicalGrid.sortingExpressions = [
{
dir: SortingDirection.Asc, fieldName: 'Artist',
ignoreCase: true, strategy: DefaultSortingStrategy.instance()
}
];
}
Note
Se valores de tipostring forem usados por uma coluna de ,dataType Date a Grade Hierárquica não vai analisá-los paraDate objetos e usar a Gradesorting Hierárquica não funcionará como esperado. Se você quiser usarstring objetos, lógica adicional deve ser implementada em nível de aplicação, para analisar os valores dos objetosDate.
Sorting Indicators Templates
O ícone do indicador de classificação no cabeçalho da coluna pode ser personalizado usando um modelo. As seguintes diretivas estão disponíveis para modelar o indicador de classificação para qualquer estado de classificação (crescente, decrescente, nenhum):
IgxSortHeaderIconDirective– re-modelar o ícone de ordenação quando nenhuma ordenação é aplicada.
<ng-template igxSortHeaderIcon>
<igx-icon>unfold_more</igx-icon>
</ng-template>
IgxSortAscendingHeaderIconDirective– re-templatea o ícone de ordenação quando a coluna é ordenada em ordem crescente.
<ng-template igxSortAscendingHeaderIcon>
<igx-icon>expand_less</igx-icon>
</ng-template>
IgxSortDescendningHeaderIconDirective– re-templatear o ícone de ordenação quando a coluna está ordenada em ordem decrescente.
<ng-template igxSortDescendingHeaderIcon>
<igx-icon>expand_more</igx-icon>
</ng-template>
Estilização
Para começar a estilizar o comportamento de ordenação, precisamos importar oindex arquivo, onde todas as funções de tema e mixins de componentes estão ativados:
@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 osgrid-theme parâmetros e aceita os$sorted-header-icon-color parâmetros esortable-header-icon-hover-color.
$custom-theme: grid-theme(
$sorted-header-icon-color: #ffb06a,
$sortable-header-icon-hover-color: black
);
Note
Em vez de codificar os valores de cor como acabamos de fazer, podemos alcançar maior flexibilidade em termos de cores usando aspalette funções e.color Por favor, consulte oPalettes tópico para 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 pelo tema global selecionado deChange Theme.
API References
Additional Resources
- Visão geral da grade hierárquica
- Virtualização e desempenho
- Paginação
- Filtragem
- Resumos
- Movimentação de Colunas
- Fixação de coluna
- Redimensionamento de colunas
- Escolha