CG
Posso passar parâmetro para o TSeekButton?
A pergunta parece ser boba... tem como enviar um parâmetro para o TSeekButton?
A resposta seria..claro! basta no construtor da classe inserir um parâmetro e do formulário que deseja chamar passa este parâmetro.... correto?
Eis o que acontece...
Código do TSeekButton:
public function __construct($info) //varíavel que coloquei para receber o parâmetro
{
parent::__construct();
parent::setTitle( AdiantiCoreTranslator::translate('Search record') );
parent::setSize(0.7, 750);
Código do Formulário que está chamando o TSeekButton:
$teste = new TSeekButton('teste');
$obj = new AdminSeek('oi'); // parâmetro que estou passando para o construtor do AdminSeek
$action = new TAction(array($obj, 'onReload'));
$teste->setAction($action);
Mensagem de erro que aparece quando clico no TSeekButton (ele não abre o TSeekButton, mas a palavra "OI" aparece no TOPO do formulário de onde eu cliquei e com a mensagem abaixo):
Warning: Missing argument 1 for AdminSeek::__construct(), called in E:wampwwwtestelibadiantiwidgetformTSeekButton.php on line 162 and defined in E:wampwwwtesteappcontrolAdminSeek.class.php on line 19
Alguém sabe como enviar um parâmetro para o construtor do TSeekButton?
Agradeço a atenção!
A resposta seria..claro! basta no construtor da classe inserir um parâmetro e do formulário que deseja chamar passa este parâmetro.... correto?
Eis o que acontece...
Código do TSeekButton:
public function __construct($info) //varíavel que coloquei para receber o parâmetro
{
parent::__construct();
parent::setTitle( AdiantiCoreTranslator::translate('Search record') );
parent::setSize(0.7, 750);
Código do Formulário que está chamando o TSeekButton:
$teste = new TSeekButton('teste');
$obj = new AdminSeek('oi'); // parâmetro que estou passando para o construtor do AdminSeek
$action = new TAction(array($obj, 'onReload'));
$teste->setAction($action);
Mensagem de erro que aparece quando clico no TSeekButton (ele não abre o TSeekButton, mas a palavra "OI" aparece no TOPO do formulário de onde eu cliquei e com a mensagem abaixo):
Warning: Missing argument 1 for AdminSeek::__construct(), called in E:wampwwwtestelibadiantiwidgetformTSeekButton.php on line 162 and defined in E:wampwwwtesteappcontrolAdminSeek.class.php on line 19
Alguém sabe como enviar um parâmetro para o construtor do TSeekButton?
Agradeço a atenção!
Passe-o como parâmetro da TAction:
Obrigado pela resposta, mas o mesmo erro acontece.
Aqui está o meu construtor do SEEK:
Fazendo como você disse:
Se entendi certo onde 'seu_param' seria o nome da variável que está no construtor?
De qualquer forma o erro persiste, para resolver estou colocando na Sessão o formulário que estou para determinar a minha ação.. mas vou precisar enviar parâmetros pro seek.. eu fiz da maneira certa?
Obrigado!
Carlos, não sei exatamente o que você quer fazer com esses parâmetros, mas se for usá-los no construtor, precisa passar o parâmetro com um valor default, pois o construtor é executado anteriormente pelo Adianti antes de qualquer interação do usuário:
Se não precisar utilizar no construtor é mais simples, pois a função onReload por exemplo, já está preparada para receber os parâmetros via $param:
$param é um array associativo, então para acessar os parâmetros que você criou:
Ok! eu entendi como enviar um parâmetro para o método onReload do Seek, mas não entendi como enviar pro método construtor do Seek!
Uma outra coisa que percebi foi o seguinte... já que pra passar os parâmetros o método onReload tem que ser estático... eu não consigo enviar os parâmetros para uma variável global da classe.. o que eu precisaria fazer na verdade. Por isso a insistência no construtor.. então vai de novo a pergunta: como eu envio valores para o método construtor do Seek?
como faço no formulário que está chamando o Seek enviar o parâmetro pro construtor?
Como disse antes.. entendi que pra enviar pro onReload tem que usar o setParameter e a classe tem que ser estática.. mas e o construtor?
Preciso acessar esses valores dentro do Seek, e com o método estático do onReload fica difícil enviar pras variáveis os valores passados por parâmetros.
Obrigado novamente!
Carlos, a ideia é a que postei no outro comentário. Prepare o construtor para receber uma variável e teste se há conteúdo nessa variável. Mas é preciso replicar esses parâmetros para todas ações da seek:
Um detalhe é que se precisar do valor dessa variável em uma função static, você pode capturá-lo através do parâmetro da função: