FP
Definir um valor padrão para o TCombo no evento onClear
Fechado
Boa tarde.
Gostaria de saber a possibilidade de definir um valor padrão para um componente TCombo no evento onClear, eu consegui habilitar e desabilitar porem definir por exemplo o primeiro item para ficar padrao apos o form ser limpo.
public function onClear( $param )
{
$this->form->clear();
TCombo::enableField('form_Pessoa', 'tipo');
TCombo:: setId('form_Pessoa', 'tipo2','2');
//aqui definifir valor padrao para o combo
}
Gostaria de saber a possibilidade de definir um valor padrão para um componente TCombo no evento onClear, eu consegui habilitar e desabilitar porem definir por exemplo o primeiro item para ficar padrao apos o form ser limpo.
public function onClear( $param )
{
$this->form->clear();
TCombo::enableField('form_Pessoa', 'tipo');
TCombo:: setId('form_Pessoa', 'tipo2','2');
//aqui definifir valor padrao para o combo
}
Já tentou
o Combo esta preenchido devidamente, no construtor do formulário, eu preciso definir definir no evento onclear um item como default para evitar que o usuário esqueca de atribuir, no evento de construcao do formulario eu tenho o seguinte codigo
$item2Tipo= array();
$item2Tipo['2'] = 'Real';
$item2Tipo['1'] = 'Ouro';
$tipo2->addItems($item2Tipo);
$tipo2->setsize(90);
$tipo2->setValue('2');
porem quando invoca o evento onclear ele limpa e isso que preciso corrigir
Fernando
Crie um método que preencha o combo e chame após o clear.
Não resolve?
Ele será chamado ao montar a tela e ao limpar o form.
poderia me dar um exemplo desse metodo, me perco muito ainda com os objetos onde posso ou nao acessa-los
Dentro da sua classe e chame ele após limpar o form:
Tentei sua dica marcelo porem tive o seguinte erro
Fatal error: Call to undefined function carregarCombo() in C:\xampp\htdocs\goldpro\app\control\PessoaForm.php on line 281
meu codigo ficou dessa form
Coloque a novo método depois do método onClear, mas já tentou colocar incluir o código de carregamento após $this->form->clear()?
Resolvi o problema
o segredo esta no metodo de recarregar o combo, pelo que entendi fora doconstrutor eu nao posso usar diretamente o componente, preciso invocar a classe passar o formulario e o nome do componente dentro do formulario com o conteudo a ser alterado.
ex: TCombo::reload('form_Pessoa', 'tipo', $itemTipo);
Excelente. Que bom que conseguiu!
Abraços
Muito obrigado pela atenção valeu mesmo, vc tem consguido trabalhar com o google maps no adianti?
Ainda não implementei nada com Google maps
Fernando,
Você não precisa necessariamente usar o método estático TForm::sendData(), que gera um Javascript em tempo de execução.
Esse método é mais recomendado para eventos de saída e alteração (exit, change) de campos, quando o formulário já está renderizado e é necessário gerar somente o Javascript de alteração.
Antes de executar o método show(), ou seja, antes de renderizar o formulário em tela, você pode mudar seus valores simplesmente usando o $this->form->setData(), desta maneira a seguir.
Este método preenche "em memória" os valores dos atributos do objeto. Então, quando ele chegar no show(), já saberá quais são os seus valores de campos.
Pablo,
Desculpa a demora em responder, irei fazer um teste e reporto o resultado aqui assim que possível muito obrigado.