Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Datagrid Detail Não consigo pegar o index da linha ao executar: Criação da grid: ...
T
Datagrid Detail  
Não consigo pegar o index da linha ao executar:
  1. <?php
  2. $pos $this->grid_tributos->getRowIndex('detail'$param['chave']);
  3. ?>


Criação da grid:
  1. <?php
  2.         $this->grid_tributos = new TQuickGrid;
  3.         $this->grid_tributos->class "tdatagrid_table customized-table";
  4.         $this->grid_tributos->style 'width: 100%';
  5.         $this->grid_tributos->setHeight250 );
  6.         $this->grid_tributos->addQuickColumn('''edit''left''5%');
  7.         $this->grid_tributos->addQuickColumn('''detail''left''5%');
  8.         $this->grid_tributos->addQuickColumn('''delete''left''5%');
  9.         $this->grid_tributos->addQuickColumn('Tipo Imposto''tipoImposto''center''30%');
  10.         $this->grid_tributos->addQuickColumn('Alíquota %''aliquotaImposto''center''30%');
  11.         $this->grid_tributos->addQuickColumn('Estado''estado''center''30%');
  12.         $this->grid_tributos->createModel();
  13.         
  14.         $scroll = new TScroll();
  15.         $scroll->setSize('100%''250');
  16.         $scroll->style 'width: 100%';
  17.         $scroll->add($this->grid_tributos);
  18. ?>


Metodo onReload:

  1. <?php
  2.     function onReloadTributo($param NULL)
  3.     {
  4.         $tributos TSession::getValue('tributos_produto');
  5.         
  6.         $this->grid_tributos->clear();
  7.         
  8.         if (isset($tributos))
  9.         {            
  10.             $cont 1;
  11.             foreach($tributos as $item)
  12.             {    
  13.                 $item_name 'cont_' $cont++;
  14.                                             
  15.                 $action_edi = new TAction(array($this'onEditTributo'));
  16.                 $action_edi->setParameter('chave'$item['cad_estado_id'].$item['tipoImposto']);
  17.                 
  18.                 $button_edi = new TButton('edit_tributo'.$cont);
  19.                 $button_edi->setAction$action_edi'' );
  20.                 $button_edi->setImage('fa:edit blue fa-lg');
  21.                 $button_edi->style 'width:13px; padding-left:6px; border-style: none; background: transparent;';
  22.                 $action_det = new TAction(array($this'onDetailTributo'));
  23.                 $action_det->setParameter('chave'$item['cad_estado_id'].$item['tipoImposto']);
  24.                 
  25.                 $button_det = new TButton('detail_tributo'.$cont);
  26.                 $button_det->setAction$action_det'' );
  27.                 $button_det->setImage('fa:edit red fa-lg');
  28.                 $button_det->style 'width:13px; padding-left:6px; border-style: none; background: transparent;';
  29.                 
  30.                 $action_del = new TAction(array($this'onDeleteTributo'));
  31.                 $action_del->setParameter('chave'$item['cad_estado_id'].$item['tipoImposto']);
  32.                 
  33.                 $button_del = new TButton('delete_tributo'.$cont);
  34.                 $button_del->setAction$action_del'' );
  35.                 $button_del->setImage('fa:trash-o red fa-lg');
  36.                 $button_del->style 'width:13px; padding-left:6px; border-style: none; background: transparent;';
  37.               
  38.                 $tributo = new StdClass;
  39.                 $tributo->edit              $button_edi;
  40.                 $tributo->detail            $button_det;
  41.                 $tributo->delete            $button_del;
  42.                 $tributo->tipoImposto       $item['tipoImposto'];
  43.                 $tributo->aliquotaImposto   $item['aliquotaImposto'];
  44.                 $tributo->estado            $item['estado'];
  45.                 $this->formFields$item_name.'_edit' ] = $tributo->edit;
  46.                 $this->formFields$item_name.'_detail' ] = $tributo->detail;
  47.                 $this->formFields$item_name.'_delete' ] = $tributo->delete;
  48.                 $this->grid_tributos->addItem($tributo);
  49.             }
  50.             $this->form->setFields$this->formFields );
  51.         }
  52.         
  53.     }
  54. ?>

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)


NR

Veja a função getRowIndex:
  1. <?php
  2. /**
  3.      * Find the row index by object attribute
  4.      * @param $attribute Object attribute
  5.      * @param $value Object value
  6.      */
  7.     public function getRowIndex($attribute$value)
  8.     {
  9.         foreach ($this->objects as $pos => $object)
  10.         {
  11.             if ($object->$attribute == $value)
  12.             {
  13.                 
  14.                 return $pos;
  15.             }
  16.         }
  17.         return NULL
  18.     }
  19. ?>

Ela compara o valor do atributo ($attribute) de cada item da grid com o valor fixo do segundo parâmetro da função($value). Se forem iguais retorna o índice. Acontece que o atributo $tributo->detail é um TButton, por isso nenhum resultado é encontrado. Para retornar o índice corretamente o valor de $object->atributo deve ser igual a $param['chave']

Use outro atributo para identificar o item.
T

Consegui Nataniel, obrigado!
Outra duvida, não existe nenhuma forma de utilizar o collspan com o datatable mesmo não?