Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Filtro e datagrid Criei um botão e inseri um código p/ filtrar e atualizar o datagrid. Até aí tudo bem! Agora, quando clico em qualquer um desses registros, o datagrid TRAZ TODOS os registros da tabela de novo! O que fazer para impedir essa situação? Obrigado! Código usado p/ filtrar: public function onFiltro() { try { TTransaction::open('r...
CN
Filtro e datagrid  
Criei um botão e inseri um código p/ filtrar e atualizar o datagrid. Até aí tudo bem!

Agora, quando clico em qualquer um desses registros, o datagrid TRAZ TODOS os registros da tabela de novo! O que fazer para impedir essa situação?

Obrigado!

Código usado p/ filtrar:

public function onFiltro()
{
try {

TTransaction::open('rms');

$data = $this->form->getData();

$criteria = new TCriteria;
$criteria->add(new TFilter('data_agendamento', '=', $data->filtro));

$repository = new TRepository('tbagendamentos');
$agenda_medicos = $repository->load($criteria);

$this->datagrid->clear();

foreach ($agenda_medicos as $agenda_medico)
{
$this->datagrid->addItem($agenda_medico);
}

TTransaction::close();
}
catch (Exception $e) {
new TMessage('Error', $e->getMessage());
}
}

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


LC

Você deve ter ai na datagrid o onReload
Nesse onReload vc tem que fazer esse filtro também

Veja neste exemplo do tutor:
https://www.adianti.com.br/framework_files/tutor/index.php?class=CustomerDataGri

Tem o onSearch, onde os filtros estão indo para sessão
No onReload também usa essa sessão
CN

Obrigado Leandro, funcionou!

BOTÃO DE FILTRO:

public function onFiltro()
{
try {

TTransaction::open('rms');

$data = $this->form->getData();

TSession::setValue('filtro_data', $data->filtro);

$criteria = new TCriteria;
$criteria->add(new TFilter('data_agendamento', '=', TSession::getValue('filtro_data')));

$repository = new TRepository('tbagendamentos');
$agenda_medicos = $repository->load($criteria);

$this->datagrid->clear();

foreach ($agenda_medicos as $agenda_medico)
{
$this->datagrid->addItem($agenda_medico);
}

TTransaction::close();
}
catch (Exception $e) {
new TMessage('Error', $e->getMessage());
}
}




/**
* Load the datagrid with data
*/
public function onReload($param = NULL)
{
try
{
// open a transaction with database 'rms'
TTransaction::open('rms');

// creates a repository for Tbagendamentos
$repository = new TRepository('Tbagendamentos');
$limit = 10;

// creates a criteria
$criteria = new TCriteria;

//$criteria = new TCriteria;
$criteria->add(new TFilter('data_agendamento', '=', TSession::getValue('filtro_data')));

$repository = new TRepository('tbagendamentos');
$agenda_medicos = $repository->load($criteria);

foreach ($agenda_medicos as $agenda_medico)
{
$this->datagrid->addItem($agenda_medico);
}

...