Visão geral da caixa de combinação multicoluna Blazor
O Multi-Column Combo Box gera colunas automaticamente para propriedades no objeto de dados. Este componente é único no sentido de que é um combo box que visualiza grandes quantidades de dados, semelhante a uma grade de dados incorporada no menu suspenso.
Blazor Multi-Column Combo Box Example
Este exemplo demonstra como criar IgbMultiColumnComboBox
que exibe dados em várias colunas em uma janela pop-up.
Component Modules
A caixa de combinação com várias colunas requer os seguintes módulos:
// in Program.cs file
builder.Services.AddIgniteUIBlazor(
typeof(IgbMultiColumnComboBoxModule));
Usage
Binding a Data Source
Para exibir seus objetos no componente Multi-Column Combo Box, você precisará vincular a propriedade DataSource
. Isso pode ser vinculado na forma de uma matriz de objetos complexos. O código a seguir demonstra como vincular a propriedade data source.
<IgbMultiColumnComboBox Height="50px" Width="400px" DataSource="CountryNames" />
@code {
protected List<CountryInfo> CountryNames;
protected override void OnInitialized()
{
this.CountryNames = CountryTreeData.Create();
}
}
Setting Display Value and Data Value
Você pode configurar diferentes propriedades do DataSource
vinculado do Multi-Column Combo Box para atuar como texto de exibição para o controle, bem como o valor subjacente quando uma seleção é feita. Isso é feito definindo as propriedades TextField
e ValueField
do controle, respectivamente, para o nome da propriedade no item de dados que você deseja que represente essas coisas.
Se o valor do componente precisar ser atualizado programaticamente, o evento ValueChanged
precisa ser manipulado. Os métodos GetValue
e GetValueAsync
podem ser usados para obter o valor quando não estiver dentro do manipulador de eventos ValueChanged
.
<IgbMultiColumnComboBox Height="50px" Width="400px"
DataSource="CountryNames"
TextField="Country"
ValueField="@(new string[]{ "ID" })" />
@code {
protected List<CountryInfo> CountryNames;
protected override void OnInitialized()
{
this.CountryNames = CountryTreeData.Create();
}
}
Setting Fields
Por padrão, a Multi-Column Combo Box mostrará todas as propriedades no item de dados subjacente, mas isso pode ser controlado definindo a propriedade Fields
no componente. Essa propriedade pega uma string[]
de caminhos de propriedade no item de dados subjacente para determinar quais propriedades são mostradas.
O trecho de código a seguir mostra como definir isso, e o menu suspenso resultante mostraria apenas as colunas ID e País:
<IgbMultiColumnComboBox Height="50px" Width="400px"
DataSource="CountryNames"
Fields="@(new string[] { "ID", "Country" })" />
@code {
protected List<CountryInfo> CountryNames;
protected override void OnInitialized()
{
this.CountryNames = CountryTreeData.Create();
}
}
Setting Placeholder Text
É possível configurar o texto que é exibido como um placeholder para quando não há seleção no componente Multi-Column Combo Box. Isso é feito definindo a propriedade Placeholder
para a string que você gostaria que fosse exibida. O código a seguir demonstra como definir isso:
<IgbMultiColumnComboBox Height="50px" Width="400px"
DataSource="CountryNames"
Placeholder="Please choose a country" />
@code {
protected List<CountryInfo> CountryNames;
protected override void OnInitialized()
{
this.CountryNames = CountryTreeData.Create();
}
}
Configuring Sorting Mode
O usuário tem a capacidade de classificar as colunas que são exibidas na Multi-Column Combo Box clicando no cabeçalho da coluna no menu suspenso. A maneira como a classificação é configurada também pode ser modificada, pois as colunas podem ser classificadas por apenas uma coluna ou várias colunas, e podem ser limitadas a ascendente e descendente, ou podem ser tri-state. Isso é feito definindo a propriedade SortMode
do componente.
Observe que as opções de classificação do TriState permitirão que colunas classificadas sejam desclassificadas.
O código a seguir demonstra como configurar a Caixa de Combinação de Várias Colunas para poder classificar por três estados de várias colunas.
<IgbMultiColumnComboBox Height="50px" Width="400px"
DataSource="CountryNames"
SortMode="SortMode.SortByMultipleColumnsTriState" />
@code {
protected List<CountryInfo> CountryNames;
protected override void OnInitialized()
{
this.CountryNames = CountryTreeData.Create();
}
}
API References
DataSource
Fields
GetValueAsync
GetValue
IgbMultiColumnComboBox
Placeholder
SortMode
TextField
ValueChanged
ValueField