加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 如果设置了$selectOneMenu的值,则更新SelectOneMenu(不

发布时间:2020-12-16 02:56:38 所属栏目:百科 来源:网络整理
导读:在我的应用程序中,如果设置了另一个SelectOneMenu,我正在尝试设置/更新SelectOneMenu.我们正在使用primefaces,所以我检查了primefaces展示,找到了我正在寻找的东西.不幸的是它不起作用.事件没有解雇,我不知道为什么.希望你能帮助我 Link to the Example of t
在我的应用程序中,如果设置了另一个SelectOneMenu,我正在尝试设置/更新SelectOneMenu.我们正在使用primefaces,所以我检查了primefaces展示,找到了我正在寻找的东西.不幸的是它不起作用.事件没有解雇,我不知道为什么.希望你能帮助我

Link to the Example of the primefaces showcase

– >如果设置了语言,它应该自动重新加载带有称呼的列表,但事实并非如此.我必须按F5重新加载.有任何想法吗?

我的xhtml代码

<h:form id="addressBasicsForm">
  <p:growl id="growl" sticky="true" showDetail="true"/>
  <p:tabView id="tabView">
    <p:tab id="stammdaten" title="#{msg.adr_basics_tabtitle}">
  <table style="width:100%;">
        <tr>
          <td style="width: 50%;">
    <p:panel toggleable="false">
      <table style="margin-top:3px; width:100%;">
        <tr style="height:26px;">
          <td>
            <p:selectOneMenu id="somLang" value="#AddressBasics_m.languageId}" style="margin-left:2px; width:90%;">
              <f:selectItems value="#{AddressBasics_m.languageItems}"/>
                      <p:ajax update="somAnrede" listener="#{AdressBasics_m.handleLanguageChange}"/>
            </p:selectOneMenu>
          </td>
        </tr>
        <tr style="height:26px;">
          <td>
            <p:selectOneMenu id="somAnrede" value="#AddressBasics_m.salutationId}" style="margin-left:2px; width:90%;">
              <f:selectItems value="#{AddressBasics_m.salutationItems}" />
            </p:selectOneMenu>
          </td>

我的豆

@Named("AddressBasics_m")
@ConversationScoped
public class AddressBasicsView implements Serializable{
private static final long serialVersionUID = -4034697810438325785L;

public List<SelectItem> getSalutationItems(){
    if(firstrun)
        languageId = 21L;

    firstrun = false;
    if(salutationItems == null || lastLanguageId != languageId){
        salutationItems = addressService.getAllSalutationsByLangId(languageId);
        setLastLanguageId(languageId);
    }
    return salutationItems;
}

public void handleLanguageChange(){
    this.salutationItems = getSalutationItems();
}

解决方法

我相信问题出在您的Ajax调用上.
Ajax可能非常棘手,我会推荐两种不同的方法:

<p:ajax render="@form" listener="#{AdressBasics_m.handleLanguageChange}"/>

要么

<p:ajax update=":addressBasicsForm:tabView:stammdaten:somAnrede" listener="#{AdressBasics_m.handleLanguageChange}"/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读