Angular Redimensionamento da coluna da grade
Com o redimensionamento da coluna de grade adiada, o usuário verá um indicador de redimensionamento temporário enquanto a operação de redimensionamento de arrastar Angular estiver em vigor. A nova largura da coluna de grade é aplicada quando a operação de arrastar é concluída.
Angular Grid Column Resizing Example
O redimensionamento de coluna também é habilitado por nível de coluna, o que significa que a grade igx pode ter uma combinação de colunas redimensionáveis e não redimensionáveis. Isso é feito por meio da resizable
entrada do igx-column
.
<igx-column [field]="'ID'" width="100px" [resizable]="true"></igx-column>
Você pode assinar o columnResized
evento do igx-grid
para implementar alguma lógica personalizada quando uma coluna é redimensionada. As larguras de coluna anteriores e novas, bem como o IgxColumnComponent
objeto, são expostas por meio dos argumentos do evento.
<igx-grid [data]="data" (columnResized)="onResize($event)" [autoGenerate]="false">
<igx-column [field]="'ID'" width="100px" [resizable]="true"></igx-column>
<igx-column [field]="'CompanyName'" width="100px" [resizable]="true"></igx-column>
</igx-grid>
public onResize(event) {
this.col = event.column;
this.pWidth = event.prevWidth;
this.nWidth = event.newWidth;
}
Resizing columns in pixels/percentages
Dependendo do cenário do usuário, a largura da coluna pode ser definida em pixels, porcentagens ou uma combinação de ambos. Todos esses cenários são compatíveis com o recurso Redimensionamento de Coluna. Por padrão, se uma coluna não tiver largura definida, ela se ajustará ao espaço disponível com largura definida em pixels.
Isso significa que a seguinte configuração é possível:
<igx-grid [data]="data" (columnResized)="onResize($event)" [autoGenerate]="false">
<igx-column [field]="'ID'" width="10%" [resizable]="true"></igx-column>
<igx-column [field]="'CompanyName'" width="100px" [resizable]="true"></igx-column>
<igx-column [field]="'ContactTitle'" [resizable]="true"></igx-column>
</igx-grid>
Note
Há uma pequena diferença na forma como o redimensionamento funciona para colunas definidas em pixels e porcentagens.
Pixels
O redimensionamento de colunas com largura em pixels funciona adicionando ou subtraindo diretamente a quantidade horizontal do movimento do mouse do tamanho da coluna.
Percentagens
Ao redimensionar colunas com largura em porcentagens, a quantidade horizontal do movimento do mouse em pixels se traduz aproximadamente em sua quantidade percentual em relação à largura da grade. As colunas permanecem responsivas e qualquer redimensionamento de grade futuro ainda refletirá nas colunas também.
Restrict column resizing
Você também pode configurar as larguras mínimas e máximas permitidas de coluna. Isso é feito por meio das minWidth
entradas e maxWidth
do igx-column
. Nesse caso, a operação de arrastar do indicador de redimensionamento é restrita para notificar o usuário de que a coluna não pode ser redimensionada fora dos limites definidos por minWidth
e maxWidth
.
<igx-column [field]="'ID'" width="100px" [resizable]="true"
[minWidth]="'60px'" [maxWidth]="'230px'"></igx-column>
É permitido misturar os tipos de valor de largura mínima e máxima da coluna (pixels ou porcentagens). Se os valores definidos para mínimo e máximo forem definidos como porcentagens, o respectivo tamanho da coluna será limitado aos tamanhos exatos semelhantes aos pixels.
Isso significa que as seguintes configurações são possíveis:
<igx-column [field]="'ID'" width="10%" [resizable]="true"
[minWidth]="'60px'" [maxWidth]="'230px'"></igx-column>
ou
<igx-column [field]="'ID'" width="100px" [resizable]="true"
[minWidth]="'5%'" [maxWidth]="'15%'"></igx-column>
Auto-size columns on double click
Cada coluna pode ser dimensionada automaticamente clicando duas vezes no lado direito do cabeçalho - a coluna será dimensionada para o valor de célula visível mais longo no momento, incluindo o próprio cabeçalho. Esse comportamento é habilitado por padrão, nenhuma configuração adicional é necessária. No entanto, a coluna não será dimensionada automaticamente caso maxWidth
seja definida nessa coluna e a nova largura exceda esse maxWidth
valor. Neste caso, a coluna será dimensionada de acordo com o valor predefinido maxWidth
.
Você também pode dimensionar automaticamente uma coluna dinamicamente usando o método exposto autosize()
ativado IgxColumnComponent
.
@ViewChild('grid') grid: IgxGridComponent;
let column = this.grid.columnList.filter(c => c.field === 'ID')[0];
column.autosize();
Auto-size columns on initialization
Cada coluna pode ser definida para tamanho automático na inicialização, definindo width
como 'auto':
<igx-column width='auto'>...
Quando a coluna é inicializada pela primeira vez na exibição, ela resolve sua largura para o tamanho da célula ou cabeçalho visível mais longo. Observe que as células que estão fora das linhas visíveis não estão incluídas. Essa abordagem é mais otimizada para desempenho do que o dimensionamento automático após a inicialização e é recomendada especialmente nos casos em que você precisa dimensionar automaticamente um grande número de colunas.
Estilização
Para começar a estilizar a linha de redimensionamento da coluna Grid, precisamos importar o arquivo de índice, onde estão todas as funções do tema e mixins de componentes:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
A abordagem mais simples para conseguir isso é criar um novo tema que estenda o e aceite muitos parâmetros, grid-theme
bem como o $resize-line-color
parâmetro.
$custom-grid-theme: grid-theme(
$resize-line-color: #0288d1
);
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.
O último passo é incluir os mixins de componentes com seu respectivo tema:
@include css-vars($custom-grid-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
- Movimentação de Colunas
- Fixação de coluna
- Escolha