Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Ícone / botão não é adicionado na grid Pessoal, Estou tentando personalizar a grid e deixar os botões do lado direito, porém os ícones / botões não são adicionados. Alguém pode me ajudar, segue trecho código abaixo. ...
RB
Ícone / botão não é adicionado na grid  
Pessoal,

Estou tentando personalizar a grid e deixar os botões do lado direito, porém os ícones / botões não são adicionados.

Alguém pode me ajudar, segue trecho código abaixo.


  1. <?php
  2. class DatagridCheckView extends TPage
  3. {
  4.       private $datagrid;
  5.       private $pageNavigation;
  6.       private $loaded;
  7.       private $form;
  8.       private $editar;
  9.     
  10.     public function __construct()
  11.     {
  12.         parent::__construct();
  13.         
  14.         $this->form = new TForm;
  15.         
  16.         // creates one datagrid
  17.         //$this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
  18.         $this->datagrid = new TQuickGrid;
  19.         $this->datagrid->style="width: 100%"// Responsive 
  20.        // $this->datagrid->makeScrollable();
  21.         $this->datagrid->disableDefaultClick(); // important!        
  22.         $this->form->add($this->datagrid);
  23.         
  24.         // add the columns        
  25.         $this->datagrid->addQuickColumn('#','id','right',8);
  26.         $this->datagrid->addQuickColumn('Nome','nome','left');
  27.         $this->datagrid->addQuickColumn('Data nascimento','data_nascimento','left');
  28.         $this->datagrid->addQuickColumn('CPF','cpf','left');
  29.         $this->datagrid->addQuickColumn('RG','rg','left');
  30.         $this->datagrid->addQuickColumn('Genero','genero_id','left');
  31.         $this->datagrid->addQuickColumn('Civil','civil','left');
  32.         $this->datagrid->addQuickColumn('Etnia','etnia','left');
  33.         $this->datagrid->addQuickColumn('','del','right',8);
  34.         $this->datagrid->addQuickColumn('','editar','right',8);
  35.         // creates the action button
  36.         $button1=new TButton('action1');
  37.         // define the button action
  38.         $button1->setAction(new TAction(array($this'onSave')), 'Save');
  39.         $button1->setImage('ico_save.png');
  40.                 
  41.         // creates the datagrid model
  42.         $this->datagrid->createModel();
  43.         $this->form->addField($button1);
  44.         
  45.         // wrap the page content using vertical box
  46.         $vbox = new TVBox;
  47.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  48.         $vbox->add($this->form);
  49.         $vbox->add($button1);
  50.         $vbox->add($this->pageNavigation);
  51.         parent::add($vbox);
  52.     }
  53. function onReload($param )
  54.     {
  55.         $this->datagrid->clear();
  56.         
  57.         try{
  58.              //abre a transação com a base
  59.              TTransaction::open('teste');
  60.              //cria um repositório para carregar 'Cliente Fisico'
  61.              $cliente  = new TRepository('VwClienteFisico');
  62.              $limit 10;
  63.              //cria um critério para filtrar os dados conforme usuário logado
  64.              $criteria = new TCriteria;
  65.              // default order
  66.             if (empty($param['order']))
  67.             {
  68.                 $param['order'] = 'id';
  69.                 $param['direction'] = 'desc';
  70.             }
  71.             
  72.              $get_session TSession::getValue('organizacion_id');//pega id da empresa na seção do usuário
  73.              
  74.              $criteria->setProperties($param); // order, offset
  75.              $criteria->add(new TFilter('organizacao_id''='$get_session));
  76.              //$criteria->add(new TFilter('tipo_pessoa_id', '=', '1'));
  77.              $criteria->setProperty('limit',$limit);
  78.              $objects $cliente->load($criteria);
  79.              
  80.              if($objects)
  81.              {
  82.                  foreach($objects as $object)
  83.                  {
  84.                       // create delete button
  85.                     $del = new TImage('fa:edit blue');
  86.                     $this->datagrid->addItem($object);
  87.                  }
  88.              }
  89.              TTransaction::close();
  90.              $this->loaded TRUE;
  91.            }
  92.            catch (Exception $e)
  93.            {
  94.                  new TMessage('error',$e->getMessage());
  95.                  TTransaction::rollback();
  96.            }
  97. ?>

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 (6)


AM

Bom dia, caro amigo sugiro que sempre que quiser customizar algum formulário , datagrid acesse o tutor para poder te orientar, mas segue abaixo :

https://www.adianti.com.br/framework_files/tutor/index.php?class=DatagridCustomV

Um abraço, espero ter te ajudado.
RB

Alexsander, boa tarde,

Foi justamente este exemplo que segui, porém não obive sucesso na hora de adicionar o botão ao lado direiro.
AM

Rubens faz o seguinte exclui a linha 36 e 37 do teu código e acrescenta o código abaixo :

$this->datagrid->addQuickAction('View', new TDataGridAction(array($this, 'onView')), 'name', 'fa:search blue');
$this->datagrid->addQuickAction('Delete', new TDataGridAction(array($this, 'onDelete')), 'code', 'fa:trash red');
AM

esqueci substituindo o name por nome e o code por id.

RB

Alexsander, bom dia,

Dessa forma eu consegui , o que eu quero é colocar os icone do lado direito da grid.
RB

Alexsander, o exemplo em que estou me baseando é este do link abaixo, porém quando utilizo as informações vidas do banco de dados os icones não são adicionados do lado direito.

https://www.adianti.com.br/forum/pt/view_3617?passar-um-metodo-na-acao-de-um-bot