Visão geral da caixa de combinação multicoluna React
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.
React Multi-Column Combo Box Example
Este exemplo demonstra como criar IgrMultiColumnComboBox
que exibe dados em várias colunas em uma janela pop-up.
Dependencies
Ao instalar o componente de gráficos, o pacote principal também deve ser instalado.
npm install --save igniteui-react-core
npm install --save igniteui-react-grids
npm install --save igniteui-react-inputs
npm install --save igniteui-react-layouts
Component Modules
A caixa de combinação com várias colunas requer os seguintes módulos:
import { IgrMultiColumnComboBoxModule } from 'igniteui-react-grids';
import { IgrMultiColumnComboBox } from 'igniteui-react-grids';
IgrMultiColumnComboBoxModule.register();
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.
No trecho de código abaixo, a coleção "countryNames" é um any[] cheio de objetos personalizados.
<IgrMultiColumnComboBox height="50px" width="400px" dataSource={this.countryNames} />
Setting Display Value and Data Value
Você pode configurar diferentes propriedades do DataSource
vinculado do Multi-Column Combo Box para atuar como o 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.
O trecho de código a seguir mostra como definir essas propriedades, considerando que o item de dados subjacente tem uma propriedade "País" e "ID":
<IgrMultiColumnComboBox height="50px" width="400px" dataSource={this.countryData}
textField="Country" valueField={["ID"]}/>
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:
<IgrMultiColumnComboBox height="50px" width="400px" dataSource={this.countryData}
fields={["ID", "Country"]} />
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:
<IgrMultiColumnComboBox height="50px" width="400px" dataSource={this.countryData}
placeholder="Please choose a country" />
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.
<IgrMultiColumnComboBox height="50px" width="400px" dataSource={this.countryData}
sortMode={SortMode.SortByMultipleColumnsTriState} />
API References
DataSource
fields
GetValueAsync
GetValue
IgrMultiColumnComboBox
placeholder
sortMode
textField
ValueChanged
valueField