Angular Classificação em grade
No Ignite UI for Angular Grid, a classificação de dados é habilitada em um nível por coluna, o que significa que o igx-grid pode ter uma mistura 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 Grid Sorting Overview Example
Isso é feito por meio da sortable
entrada. Com a classificação em grade, você também pode definir a propriedade para executar a sortingIgnoreCase
classificação com distinção entre 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 IgxGrid fornece uma solução para esse problema, indicando o índice de cada coluna classificada.
Sorting through the API
Você pode classificar qualquer coluna ou uma combinação de colunas por meio da API Grid usando o método Grid sort
:
import { SortingDirection } from 'igniteui-angular';
// import { SortingDirection } from '@infragistics/igniteui-angular'; for licensed package
// Perform a case insensitive ascending sort on the ProductName column.
this.grid.sort({ fieldName: 'ProductName', dir: SortingDirection.Asc, ignoreCase: true });
// Perform sorting on both the ProductName and Price columns.
this.grid.sort([
{ fieldName: 'ProductName', dir: SortingDirection.Asc, ignoreCase: true },
{ fieldName: 'Price', dir: SortingDirection.Desc }
]);
Note
A classificação é realizada usando nosso DefaultSortingStrategy
algoritmo. Qualquer IgxColumnComponent
ou ISortingExpression
pode usar uma implementação personalizada do ISortingStrategy
como um algoritmo substituto. Isso é útil quando a classificação personalizada precisa ser definida para colunas de modelo complexas ou colunas de imagem, por exemplo.
Assim como acontece com o comportamento de filtragem, você pode limpar o estado de classificação usando o clearSort
método:
// Removes the sorting state from the ProductName column
this.grid.clearSort('ProductName');
// Removes the sorting state from every column in the Grid
this.grid.clearSort();
Note
O sortStrategy
da Grid é de tipo diferente em comparação com o sortStrategy
da coluna, pois eles trabalham em escopos diferentes e expõem parâmetros diferentes.
Note
A operação de classificação NÃO altera a fonte de dados subjacente da Grid.
Initial sorting state
É possível definir o estado de classificação inicial do Grid passando uma matriz de expressões de classificação para a sortingExpressions
propriedade do Grid.
public ngAfterViewInit(): void {
this.grid.sortingExpressions = [
{
dir: SortingDirection.Asc, fieldName: 'CategoryName',
ignoreCase: true, strategy: DefaultSortingStrategy.instance()
}
];
}
Note
Se os valores do tipo string
forem usados por uma coluna de dataType
Date
, o Grid não os analisará em Date
objetos e o uso do Grid sorting
não funcionará conforme o esperado. Se você quiser usar string
objetos, a lógica adicional deve ser implementada em um nível de aplicativo, a fim de analisar os valores dos Date
objetos.
Remote Sorting
O Grid dá suporte à classificação remota, o que é demonstrado no Grid Remote Data Operations
tópico.
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
– reconfigura o ícone de classificação quando nenhuma classificação é aplicada.
<ng-template igxSortHeaderIcon>
<igx-icon>unfold_more</igx-icon>
</ng-template>
IgxSortAscendingHeaderIconDirective
– reconfigura o ícone de classificação quando a coluna é classificada em ordem crescente.
<ng-template igxSortAscendingHeaderIcon>
<igx-icon>expand_less</igx-icon>
</ng-template>
IgxSortDescendningHeaderIconDirective
– Remodela o ícone de classificação quando a coluna é classificada em ordem decrescente.
<ng-template igxSortDescendingHeaderIcon>
<igx-icon>expand_more</igx-icon>
</ng-template>
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 $sorted-header-icon-color
sortable-header-icon-hover-color
e.
$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 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
- Resumos
- Movimentação de Colunas
- Fixação de coluna
- Redimensionamento de colunas
- Escolha