https://www.primefaces.org/showcase/ui/ajax/event.xhtml
我想在展示中做同样的事情,但没有刷新页面。例如:在inputtext中设置值并单击按钮查看结果,但如果我有<p:ajax event="blur" />
或<p:ajax/>
,那么我必须在按钮上单击两次
<p:inputText id="data" value="#{buttonView.data}">
<p:ajax/>
</p:inputText>
<p:commandButton value="Ajax Submit" id="ajax" actionListener="#{buttonView.buttonAction}" />
也许类似于使用outpupanel并在命令按钮中更新该面板?
答案 0 :(得分:0)
如果您要使用<p:commandButton />
,则会提交表单。在这种情况下,使用update
的{{1}}属性来更新目标组件。
如果要在键入后立即更新其他组件,请使用<p:commandButton />
更新目标组件。 (你的事件可以是键盘,按键,变化,模糊等)。
答案 1 :(得分:0)
我不明白为什么要将使用p:ajax
的概念与p:commandButton
的功能混合使用。
基本上,
p:ajax
的使用旨在部分处理 field(s)value并更新form
的组件,即使没有 提交它。
示例:强>
您可以在屏幕上显示国家/地区(预先填充)(包括注册)以及其他一些字段,但如果用户更改了国家/地区,则需要重新填写“州”下拉列表并更新屏幕异步。在那里你需要使用p:ajax
。
另一方面,
p:commandButton
旨在提交form
(最初不更新组件)。但是,它也支持 使用update
属性更新组件。
示例:强> 现在,重新考虑具有类似下拉列表的上述示例(但是使用固定值禁用)。现在您知道您的屏幕无需更新,您只需要处理验证(如果有)并提交表格(如果需要,可以更新)。
至于您关注使用p:ajax
上的p:inputText
对屏幕上的某些异步更新以及p:commandButton
最终提交form
,这完全取决于在你的要求。
答案 2 :(得分:-2)
相反p:ajax尝试f:ajax。你可以使用&lt; f:ajax event =“change”render =“@ this”/&gt; 一旦值发生变化,同样会反映在支持bean中。