> ## Documentation Index
> Fetch the complete documentation index at: https://docs-fw.madbuilder.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# BDBSelectCheck

> O `BDBSelectCheck` é um componente (derivado da classe `BSelectCheck`) para seleção de múltiplas opções baseado em um modelo de dados.

*Obs.: todos os métodos presentes nesta documentação utilizarão como base uma tabela chamada "estado". Esta tabela foi criada em um modelo de dados chamado "docs" e possui três colunas: id, nome, .*

## \_\_construct

Construtor da classe `BDBSelectCheck`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do campo.</ResponseField>
<ResponseField name="$database" type="mixed" required>Nome do banco de dados.</ResponseField>
<ResponseField name="$model" type="mixed" required>Nome da classe do modelo.</ResponseField>
<ResponseField name="$key" type="mixed" required>Campo da tabela a ser usado como chave.</ResponseField>
<ResponseField name="$value" type="mixed" required>Campo da tabela a ser listado.</ResponseField>
<ResponseField name="$ordercolumn" type="mixed" default="NULL">(Opcional) Coluna para ordenação dos dados.</ResponseField>
<ResponseField name="$criteria" type="TCriteria" default="NULL">(Opcional) Critérios para filtrar o modelo.</ResponseField>
<ResponseField name="$cachekey" type="mixed" default="NULL">(Opcional) Chave para cache dos itens.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstados = new BDBSelectCheck('selecaoEstados', 'docs', 'Estado', 'id', 'nome');
$selecaoEstados->setSize('100%');
```

**Exemplo de código (com parâmetros opcionais):**

```php theme={null}
$criteria = new TCriteria;
$criteria->add(new TFilter('nome', '=', 'Rio de Janeiro'));

$selecaoEstados = new BDBSelectCheck('selecaoEstados', 'docs', 'Estado', 'id', 'nome', 'nome asc', $criteria);
$selecaoProduto->setSize('100%');
```

<br />

## reloadFromModel

(Método estático) Recarrega o combo a partir de dados de modelo.

**Parâmetros:**
<ResponseField name="$formname" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$field" type="mixed" required>Nome do campo.</ResponseField>
<ResponseField name="$database" type="mixed" required>Nome do banco de dados.</ResponseField>
<ResponseField name="$model" type="mixed" required>Nome da classe do modelo.</ResponseField>
<ResponseField name="$key" type="mixed" required>Campo da tabela a ser usado como chave.</ResponseField>
<ResponseField name="$value" type="mixed" required>Campo da tabela a ser listado.</ResponseField>
<ResponseField name="$ordercolumn" type="mixed" default="NULL">(Opcional) Coluna para ordenação dos dados.</ResponseField>
<ResponseField name="$criteria" type="TCriteria" default="NULL">(Opcional) Critérios para filtrar o modelo.</ResponseField>
<ResponseField name="$startEmpty" type="bool" default="FALSE">(Opcional) Determina se o combo terá um primeiro item vazio.</ResponseField>
<ResponseField name="$fire_events" type="bool" default="TRUE">(Opcional) Determina se a ação de mudança será disparada.</ResponseField>
<ResponseField name="$cachekey" type="mixed" default="NULL">(Opcional) Chave para cache dos itens.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstados = new BDBSelectCheck('selecaoEstados', 'docs', 'Estado', 'id', 'nome');

$btnRecarregar = new TButton('btnRecarregar');
$btnRecarregar->addStyleClass('btn-default');
$btnRecarregar->setImage('far:circle #000000');
$btnRecarregar->setAction(new TAction([$this, 'recarregarDoModelo']), 'Recarregar do Modelo');
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function recarregarDoModelo($param = null)
{
    $criteria = new TCriteria;
    $criteria->add(new TFilter('nome', '=', 'Rio de Janeiro'));

    BDBSelectCheck::reloadFromModel('selecaoEstados', 'docs', 'Estado', 'id', 'nome', 'nome asc', $criteria, true, false);
}
```
