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());
}
}
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());
}
}
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
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);
}
...