ValueChangeListener
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
eu havia feito a seguinte pergunta:
como eu faço pra selecionar um item num listbox e assim que eu seleciona-lo executar uma ação?... sem precisar apertar um botão?.... eu tentei usar a propriedade 'onclick'... mas ele não funciona... eu queria saber também como fazer isso em um 'adf read only table'... assim que o usuário selecionasse uma linha .. eu queria que já executasse uma ação... mas na propriedade 'onclick' dele não está executando a ação....
E então o Victor me falou que eu deveria seguir os seguintes passos:
você precisa mecher em 2 atributos do seu componente
1 - autoSubmit = "true"
2 - valueChangeListener="#{nomeDoBean.nomeDoMetodo}"
Mas eu fiz esses dois passos... no valuechangelistener eu chamei o mesmo método que o botão chamava....
e toda vez que eu selecionava o item .. ele não fazia nada... era como se eu estivesse atualizando a tela ao clicar nele.. mas ele não executava a ação que eu queria que ele executasse....
como eu faço pra selecionar um item num listbox e assim que eu seleciona-lo executar uma ação?... sem precisar apertar um botão?.... eu tentei usar a propriedade 'onclick'... mas ele não funciona... eu queria saber também como fazer isso em um 'adf read only table'... assim que o usuário selecionasse uma linha .. eu queria que já executasse uma ação... mas na propriedade 'onclick' dele não está executando a ação....
E então o Victor me falou que eu deveria seguir os seguintes passos:
você precisa mecher em 2 atributos do seu componente
1 - autoSubmit = "true"
2 - valueChangeListener="#{nomeDoBean.nomeDoMetodo}"
Mas eu fiz esses dois passos... no valuechangelistener eu chamei o mesmo método que o botão chamava....
e toda vez que eu selecionava o item .. ele não fazia nada... era como se eu estivesse atualizando a tela ao clicar nele.. mas ele não executava a ação que eu queria que ele executasse....
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
eu entendi que era para um af:selectOneChoice
posta o codigo do componente e tambem o metodo q é chamado
posta o codigo do componente e tambem o metodo q é chamado
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
selecionar o item q você fala é clicar no radion button ??
acho muito dificil você conseguir fazer isso...
so clicando mesmo... no registro diretamente ou selecionando o radionButton e clicando em abrir
acho muito dificil você conseguir fazer isso...
so clicando mesmo... no registro diretamente ou selecionando o radionButton e clicando em abrir
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Bom... eu tentei fazer pra um selectonechoice também... mas não fucionou também...
vo posta o código do selectonechoice....
jsp
No componente 'tableselectone', que é onde se seleciona e uma table não tem a propriedade valuechangelistener!!
vo posta o código do selectonechoice....
jsp
<af:panelForm rows="1">
<af:selectOneChoice value="#{bindings.wplaca.inputValue}"
label="Selecione a O.S. do Transporte"
autoSubmit="true"
valueChangeListener="#{backing_Montagem_transporte.Pesquisar_action}">
<f:selectItems value="#{bindings.wplaca.items}"/>
</af:selectOneChoice>
public String Pesquisar_action() {
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
}
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
seguinte...
apague seu metodo do bean e dai nessa linha la no teu jsp deve acusar um erro, dai click na lampada vermelha a sua esquerda na direção da linha
valueChangeListener="#{backing_Montagem_transporte.Pesquisar_action}">
ficando assim
public String pesquisarAction (ValueChangeEvent valueChangeEvent) {
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
}
String valorSelecionado = valueChangeEvent.getValue();
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Olha Victor...
eu fiz exatamente do jeito que você falou... mas deu na mesma... ele faz como se tivesse atualizando a página... mas não executa a ação....!!
Eu até criei um outro método na propriedade Valuechangelistener... e aí então coloquei o código... mas não deu em nada!!..
eu fiz exatamente do jeito que você falou... mas deu na mesma... ele faz como se tivesse atualizando a página... mas não executa a ação....!!
Eu até criei um outro método na propriedade Valuechangelistener... e aí então coloquei o código... mas não deu em nada!!..
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
Michele
como todo bom piscicopata vamos por partes ...
"ele faz como se tivesse atualizando a página"
isso é o partial rendered ... isso se da por causa do autoSubmit='true'
coloque um break point dentro do seu método que tenho certeza absoluta que ele entrará no seu metodo.. o que esta ocorrendo e que seu metodo esta com problemas
ExecuteWithParams1
coloque um breakpoint nesse metodo tambem
em fim o seu problema e seu codigo o que te passei ta funcionando
qualquer coisa posta tudo ai q agente vê o q faz
como todo bom piscicopata vamos por partes ...
"ele faz como se tivesse atualizando a página"
isso é o partial rendered ... isso se da por causa do autoSubmit='true'
coloque um break point dentro do seu método que tenho certeza absoluta que ele entrará no seu metodo.. o que esta ocorrendo e que seu metodo esta com problemas
ExecuteWithParams1
coloque um breakpoint nesse metodo tambem
em fim o seu problema e seu codigo o que te passei ta funcionando
qualquer coisa posta tudo ai q agente vê o q faz
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Bom.. eu coloquei um breakpoint no meu bean.. e ele passou por lá...
vou postar o meu código:
vou postar o meu código:
<af:selectOneChoice value="#{bindings.wplaca.inputValue}"
label="Selecione a O.S. do Transporte"
autoSubmit="true"
valueChangeListener="#{backing_Montagem_transporte.Pesquisar}">
<f:selectItems value="#{bindings.wplaca.items}"/>
</af:selectOneChoice>
public void Pesquisar(ValueChangeEvent valueChangeEvent) {
// Add event code here...
BindingContainer bindings = getBindings();
OperationBinding operationBinding =bindings.getOperationBinding("ExecuteWithParams1");
Object result = operationBinding.execute();
}
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
então ...
como eu havia dito
o problema e de logia sua
se ta entrando no metodo e porque você já entendeu como faz, agora falta você dar mais uma olhada na sua logica para acertar ela pois o problem e que seu metodo não faz o que você acha que ele tinha q fazer
como eu havia dito
o problema e de logia sua
se ta entrando no metodo e porque você já entendeu como faz, agora falta você dar mais uma olhada na sua logica para acertar ela pois o problem e que seu metodo não faz o que você acha que ele tinha q fazer
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
mas quando eu chamo o método pelo botão... ele executa certinho... ele me retorna a pesquisa ....
a única coisa que eu fiz de diferente é chamar esse método no valuechangelistener....
tem certeza.. q eu não preciso acertar mais nenhum atributo?!!
a única coisa que eu fiz de diferente é chamar esse método no valuechangelistener....
tem certeza.. q eu não preciso acertar mais nenhum atributo?!!
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
quem retorna certinho quando você chama de outra forma ...
o metodo do AM ou do bean ??
acho q sei o seu problema
faça assim
o metodo do AM ou do bean ??
acho q sei o seu problema
Object result = operationBinding.execute();
operationBinding.execute();
Object result = operationBinding.getResult();
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Eu fiz essa mudança... mas não adiantou!!
É o seguinte .. eu tenho um commandbutton:
O que eu quero é que ele faça a pesquisa só com a mudança do meu selectonechoice.. sem eu precisar ter que clicar no notão pesquisar....
Quando eu clico no botão pesquisar ele funciona diretinho....
Código do selectonechoice:
Eu uso esse mesmo "Executewithparams1" para os dois casos... mas no selectonechoice.. ele não está mostrando a pesquisa...
É o seguinte .. eu tenho um commandbutton:
<af:commandButton text="Pesquisar"
disabled="#{!bindings.ExecuteWithParams1.enabled}"
action="#{backing_Montagem_transporte.Pesquisa}"/>
public String Pesquisa() {
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
}
Quando eu clico no botão pesquisar ele funciona diretinho....
Código do selectonechoice:
<af:selectOneChoice value="#{bindings.wplaca1.inputValue}"
label="Placa"
valueChangeListener="#{backing_Montagem_transporte.pesquisar_solicitacao}"
autoSubmit="true">
<f:selectItems value="#{bindings.wplaca1.items}"/>
</af:selectOneChoice>
public String pesquisar_solicitacao(ValueChangeEvent valueChangeEvent) {
// Add event code here...
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
operationBinding.execute();
Object result = operationBinding.getResult();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
}
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
oh michele
eu to tendo muita dificuldade para entender as suas duvidas sempre
separe melhor os assuntos, crie novos topicos, separe melhor suas duvidas, sei que não e facil quando se esta começando mas estou falando apenas para que eu possa te ajudar da melhor forma
vamos la..
so fazer a pesquisa com o selectOne já esta tudo implementado...
agora se você quer atualizar outro componente que sera alimentado com a sua pesquisa... ai falta..
no seu componente que tem o valueChangeListener você vai acrescentar
partialTriggers="idOutroComponente"
e no componente que será atualizado você vai colocar
id="idOutroComponente"
eu to tendo muita dificuldade para entender as suas duvidas sempre
separe melhor os assuntos, crie novos topicos, separe melhor suas duvidas, sei que não e facil quando se esta começando mas estou falando apenas para que eu possa te ajudar da melhor forma
vamos la..
so fazer a pesquisa com o selectOne já esta tudo implementado...
agora se você quer atualizar outro componente que sera alimentado com a sua pesquisa... ai falta..
no seu componente que tem o valueChangeListener você vai acrescentar
partialTriggers="idOutroComponente"
e no componente que será atualizado você vai colocar
id="idOutroComponente"
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Desculpa... vou tentar esclarecer melhor minhas dúvidas!! hehe...
... é q inicialmente a dúvida era uma.. e assim que você vai respondendo .. você vai solucionando a dúvida.. e outras vão aparecendo... mas vou fazer o possível, pra separar as coisas...
Bom.. eu fiz isso que você me passou.. só que ao contrário o partialTrigger no componente que vai ser atualizado .. porque da forma que você me passou não funcionou...
Agora ele está fazendo a pesquisa .. mas atrasado... deixa eu explicar:
o selectonechoice incialmente não tem valor nenhum... quando eu mudo o valor dele a primeira vez.. nada acontece.. já quando eu mudo a segunda vez.. ele faz a pesquisa com o valor anterior... e assim sucessivamente.. ele está sempre fazendo a pesquisa com o valor que foi selecionado antes...
não sei se fui clara!!...
Vou passar o código:
Código de um dos componentes que vai receber a pesquisa:
... é q inicialmente a dúvida era uma.. e assim que você vai respondendo .. você vai solucionando a dúvida.. e outras vão aparecendo... mas vou fazer o possível, pra separar as coisas...
Bom.. eu fiz isso que você me passou.. só que ao contrário o partialTrigger no componente que vai ser atualizado .. porque da forma que você me passou não funcionou...
Agora ele está fazendo a pesquisa .. mas atrasado... deixa eu explicar:
o selectonechoice incialmente não tem valor nenhum... quando eu mudo o valor dele a primeira vez.. nada acontece.. já quando eu mudo a segunda vez.. ele faz a pesquisa com o valor anterior... e assim sucessivamente.. ele está sempre fazendo a pesquisa com o valor que foi selecionado antes...
não sei se fui clara!!...
Vou passar o código:
<af:selectOneChoice value="#{bindings.wplaca1.inputValue}"
label="Placa"
valueChangeListener="#{backing_Montagem_transporte.pesquisar_solicitacao}"
autoSubmit="true" id="placa_pesquisa">
<f:selectItems value="#{bindings.wplaca1.items}"/>
</af:selectOneChoice>
public String pesquisar_solicitacao(ValueChangeEvent valueChangeEvent) {
// Add event code here...
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
operationBinding.execute();
Object result = operationBinding.getResult();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
<af:panelLabelAndMessage label="Peso"
partialTriggers="placa_pesquisa">
<af:outputText value="#{bindings.FrotaSolicitacaoView1Peso.inputValue}"
inlineStyle="font-weight:bold;"/>
</af:panelLabelAndMessage>
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
eu me atrapalhei nos componentes en... que bom q você consegui solucionar
ta ficando fera hein..
entendi o que você esta relantando.... nunca vi isso não
deixa eu ver o seu 'ExecuteWithParams1'.. posta ele ai
uma solução logo de cara
e você pegar o metodo que e chamado la no teu AM e fazer com q ele receba o parametro direto da combo
como?!?!
nomeParam = ao nome que você da ao parametro no seu metodo AM
esse cara sempre terá o novo valor alterado na combo
se o seu metodo no AM ainda não recebe um parametro
você tem de tirar ele do page definition do su jsp e tambem tirar do client interface do teu AM.. dai coloque o param lá, compile e faça tudo de novo acrescente no cliente interface e no page definition
ta ficando fera hein..
entendi o que você esta relantando.... nunca vi isso não
deixa eu ver o seu 'ExecuteWithParams1'.. posta ele ai
uma solução logo de cara
e você pegar o metodo que e chamado la no teu AM e fazer com q ele receba o parametro direto da combo
como?!?!
Map params = operationBinding.getParamsMap();
params.put("nomeParam", (String)valueChangeEvent.getNewValue());
esse cara sempre terá o novo valor alterado na combo
se o seu metodo no AM ainda não recebe um parametro
você tem de tirar ele do page definition do su jsp e tambem tirar do client interface do teu AM.. dai coloque o param lá, compile e faça tudo de novo acrescente no cliente interface e no page definition
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
hehe.. desculpa a minha ignorância... mas eu não entendi muito bem;;;
mas se o 'executewithparams' não é um método que eu criei ... onde fica o código dele... você diz o do pagedefinition?:
Esse código que você passo eu coloco aonde ?... no bean?...
Então o "nomeParam" que você diz... seria o meu "wplaca".. como mostra o código aí em cima?..
mas se o 'executewithparams' não é um método que eu criei ... onde fica o código dele... você diz o do pagedefinition?:
<action id="ExecuteWithParams1" IterBinding="FrotaSolicitacaoView1Iterator"
InstanceName="AppModuleDataControl.FrotaSolicitacaoView1"
DataControl="AppModuleDataControl" RequiresUpdateModel="true"
Action="95">
<NamedData NDName="wplaca" NDType="java.lang.String"
NDValue="${bindings.FrotaSolicitacaoView1_wplaca}"/>
</action>
Então o "nomeParam" que você diz... seria o meu "wplaca".. como mostra o código aí em cima?..
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
sim... o código e no bean ficando assim...
e no page definition acho eu que tera de tirar o param 'NDValue'
public String pesquisar_solicitacao(ValueChangeEvent valueChangeEvent) {
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams1");
Map params = operationBinding.getParamsMap();
params.put("wplaca", (String)valueChangeEvent.getNewValue());
operationBinding.execute();
Object result = operationBinding.getResult();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
return null;
e no page definition acho eu que tera de tirar o param 'NDValue'
-
- Rank: Programador Sênior
- Mensagens: 69
- Registrado em: Sex, 08 Fev 2008 11:20 am
- Localização: São Paulo - SP
Oi Victor... eu acho que o meu ValueChangeEvent.. está com algum problema.. porque quando eu travei pra um valor fixo ele funciounou normal... a pesquisa...:
Mas quando eu coloquei assim:
ele não fez nada...
* .. ahh.. e eu tirei o NDValue... do pagedefinition..
params.put("wplaca", "AAA1231");
params.put("wplaca", (String)valueChangeEvent.getNewValue());
* .. ahh.. e eu tirei o NDValue... do pagedefinition..
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
está errado sim... a assinatura do método
tem de ser de retorno void e não String
agora vai funcionar
tem de ser de retorno void e não String
agora vai funcionar
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
o troço é lindo mas existe alguns bugs
faz o processo novamente... apaga tudo e começa de novo
se não funcionar tente fazer um use case so pra testar a funcionalidade
vê o que você consegue ai e me de noticias
faz o processo novamente... apaga tudo e começa de novo
se não funcionar tente fazer um use case so pra testar a funcionalidade
vê o que você consegue ai e me de noticias
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes