leo*_*tiw 30 ajax jsf primefaces
我使用可编辑的primefaces selectOneMenu来显示一些值.如果用户从列表中选择项目,则应更新文本区域.但是,如果用户在selectOneMenu中键入内容,则不应更新textarea.
我以为我可以用ajax事件来解决这个问题.但是,我不知道我可以在这里使用哪个事件.我只知道这valueChange件事.还有其他活动,比如onSelect或onKeyUp?
这是我的代码:
<p:selectOneMenu id="betreff" style="width: 470px !important;"
editable="true" value="#{post.aktNachricht.subject}">
<p:ajax event="valueChange" update="msgtext"
listener="#{post.subjectSelectionChanged}" />
<f:selectItems value="#{post.subjectList}" />
</p:selectOneMenu>
<p:inputTextarea style="width:550px;" rows="15" id="msgtext"
value="#{post.aktNachricht.text}" />
Run Code Online (Sandbox Code Playgroud)
Dan*_*lor 61
PrimeFaces ajax事件有时记录很差,因此在大多数情况下,您必须查看源代码并检查自己.
p:selectOneMenu支持更改事件:
<p:selectOneMenu ..>
<p:ajax event="change" update="msgtext"
listener="#{post.subjectSelectionChanged}" />
<!--...-->
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
AjaxBehaviorEvent在签名中触发侦听器作为参数:
public void subjectSelectionChanged(final AjaxBehaviorEvent event) {...}
Run Code Online (Sandbox Code Playgroud)
我宁愿使用更方便的itemSelect事件。通过此事件,您可以org.primefaces.event.SelectEvent在侦听器中使用对象。
<p:selectOneMenu ...>
<p:ajax event="itemSelect"
update="messages"
listener="#{beanMB.onItemSelectedListener}"/>
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
有了这样的听众:
public void onItemSelectedListener(SelectEvent event){
MyItem selectedItem = (MyItem) event.getObject();
//do something with selected value
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106245 次 |
| 最近记录: |