> ## 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.

# TDBRadioGroup

> O `TDBRadioGroup` é um componente que cria um grupo de botões de rádio vinculados a fontes de dados do banco de dados. Este componente permite que você apresente opções definidas em uma tabela de banco de dados como botões de rádio em uma interface de usuário.

Derivado da classe `TRadioGroup`, métodos herdados não sobrescritos podem também ser utililzados por objetos `TDBRadioGroup`. Acesse a [documentação do componente/classe-pai](https://madbuilder.mintlify.app/selecao-de-dados-fixos/tradiogroup) para conhecê-los.

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

## \_\_construct

Construtor da classe `TDBRadioGroup`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do widget.</ResponseField>
<ResponseField name="$database" type="mixed" required>Nome do banco de dados.</ResponseField>
<ResponseField name="$model" type="mixed" required>Nome da classe modelo.</ResponseField>
<ResponseField name="$key" type="mixed" required>Campo da tabela usado como chave.</ResponseField>
<ResponseField name="$value" type="mixed" required>Campo da tabela que será listado.</ResponseField>
<ResponseField name="$ordercolumn" type="mixed" default="NULL">(Opcional) Coluna para ordenar os campos.</ResponseField>
<ResponseField name="$criteria" type="TCriteria" default="NULL">(Opcional) Objeto `TCriteria` para filtrar o modelo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoProduto = new TDBRadioGroup('selecaoProduto', 'docs', 'Produto', 'id', '{nome}, R$ {preco}');
$selecaoProduto->setSize(180);
$selecaoProduto->setLayout('vertical');
```

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

```php theme={null}
$criterio = new TCriteria();
$criterio->add(new TFilter('preco', '<', 5)); // Filtrar por itens da tabela cujo preço seja menor que 5

$selecaoProduto = new TDBRadioGroup('selecaoProduto', 'docs', 'Produto', 'id', '{nome}, R$ {preco}', 'id asc', $criterio);
$selecaoProduto->setSize(180);
$selecaoProduto->setLayout('vertical');
```

<br />

## reloadFromModel

(Método estático) Recarrega o `TDBRadioGroup` a partir dos dados do 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 modelo.</ResponseField>
<ResponseField name="$key" type="mixed" required>Campo da tabela usado como chave.</ResponseField>
<ResponseField name="$value" type="mixed" required>Campo da tabela que será listado.</ResponseField>
<ResponseField name="$ordercolumn" type="mixed" default="NULL">(Opcional) Coluna para ordenar os campos.</ResponseField>
<ResponseField name="$criteria" type="TCriteria" default="NULL">(Opcional) Objeto `TCriteria` para filtrar o modelo.</ResponseField>
<ResponseField name="$options" type="array" default="[]">(Opcional) Array de opções \[layout, breakItems, useButton, value, changeAction, changeFunction].</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoProduto = new TDBRadioGroup('selecaoProduto', 'docs', 'Produto', 'id', '{nome}, R$ {preco}', 'id asc');
$selecaoProduto->setSize(180);
$selecaoProduto->setLayout('vertical');

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

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 recarregarDados($param)
{
    TDBRadioGroup::reloadFromModel('nomeForm', 'selecaoProduto', 'docs', 'Produto', 'id', '{nome}, R$ {preco}', 'preco asc', null, ['changeFunction' => 'alert("Seleção alterada com sucesso!");']);
}
```
