JL
TFieldList ficando com os campos trocados ao carregar os dados
Olá estou com problemas no compnente TFieldList ao carregar os dados de onEdit, o componente fica quebrado e fica todo desajustado. Como posso corrigir este erro?
Você está populando o fieldlist de forma estática? Poste o código da onEdit
public function onEdit( $param )
{
try
{
if (isset($param['key']))
{
$key = $param['key']; // get the parameter $key
TTransaction::open(self::$database); // open a transaction
$object = new Agendamento($key); // instantiates the Active Record
//$procedimento = Agendamento::find($key)
// ->belongsToMany('Procedimentos', 'AgendamentoProcedimento','agendamento_id', 'procedimentos_id');
$procedimento = $object->getProcedimento();
$data = new stdClass;
$data->procedimentos_id = [];
if(!empty($procedimento)){
$object->view = $param['view'];
$num = count( $procedimento );
// TFieldList::clear('my_field_list');
TFieldList::addRows('my_field_list',$num - 1);
foreach ($procedimento as$k=> $item) {
$data->procedimentos_id[$k] = $item->procedimentos_id;
$data->quantidade[$k] = $item->quantidade;
$data->number[$k] = $item->number;
TForm::sendData(self::$formName,$data);
}
var_dump($data,$num);
}
//recria os campos dinamicamente e carrega os dados
$this->form->setData($object); // fill the form
TTransaction::close(); // close the transaction
}
else
{
$this->form->clear();
}
}
catch (Exception $e) // in case of exception
{
new TMessage('error', $e->getMessage()); // shows the exception error message
TTransaction::rollback(); // undo all pending operations
}
}
Na onEdit você pode usar diretamente a função addDetail:
Veja o exemplo abaixo:
https://adianti.com.br/framework_files/tutor/index.php?class=SaleMultiValueForm&method=onEdit&key=1
A forma que você usou não está errada, mas é mais indicada para casos de ações estáticas, como no exemplo abaixo:
https://adianti.com.br/framework_files/tutor/index.php?class=FormFieldListEventsView
E nesses casos, é necessário considerar um timeout de pelo menos 50 ms para cada item adicionado:
Muito obrigado Natanie, me ajudou bastante.