【问题标题】:p:selectOneMenu first ajax request issuep:selectOneMenu 第一个ajax请求问题
【发布时间】:2012-07-24 12:10:34
【问题描述】:

当我尝试通过更改 SelectOneMenu 的值来更新 p:dataGrid 时,PrimeFaces p:selectOneMenu 组件出现问题。

Xhtml:

<p:selectOneMenu value="#{bussinessOwnersViewerMB.selectedCity}" effect="explode">
  <f:selectItems value="#{bussinessOwnersViewerMB.cities}" var="city" itemLabel="#{city.cityName}" itemValue="#{city.cityId}"/>  
  <p:ajax listener="#{bussinessOwnersViewerMB.handleCityChange}" update="mainform:bolist"/>
</p:selectOneMenu>

<p:dataGrid id="bolist" var="bo" value="#{bussinessOwnersViewerMB.bOwners}" columns="3" rows="#{bussinessOwnersViewerMB.os}">
  <p:column>
    <p:panel header="#{bo.bOName}">
      <h:panelGrid columns="1">
        <p:graphicImage value="/resources/images/#{bo.boType}/#{bo.bOId}/mainProfile.jpg"/>
      </h:panelGrid>
    </p:panel>
  </p:column>
</p:dataGrid>

问题是,当我第一次更改 selectOneMenu 的值时,数据网格没有得到更新。所发生的只是调用 postconstructor 方法,在第一次更改后它工作正常。

我的托管 bean 是一个 viewscoped 托管 bean。

监听方法“bussinessOwnersViewerMB.handleCityChange”是:

public void handleCityChange(ValueChangeEvent event) {  
  bOwners = bovb.loadAllDistributerByType(new Integer(selectedCity)); // selectedcity is the selected item id 
  os = Integer.toString(bOwners.size());
}

【问题讨论】:

  • 请提供有关您如何解决此问题的最新信息。

标签: jsf-2 primefaces


【解决方案1】:

在过去,您无法像这样更新 dataGrid;您必须将其包装在一个 panelGroup 中。我不知道这是否发生了变化,但我仍然这样做并且它仍然有效。因此,只需将您的 dataGrid 放入一个 panelGroup 并在您的 ajax 标签中更新 panelGroup(而不是 dataGrid)。

【讨论】:

  • 谢谢安德烈..我试试你的建议,但问题仍然存在!我认为问题不是来自 dataGrid 的更新,而是在第一个 ajax 请求之后..
  • 你的 bean 的作用域是什么?
【解决方案2】:

在我的情况下,问题是由包含&lt;h:panelGroup&gt;&lt;p:panel&gt; 产生的,因此使用&lt;p:ajax&gt; 的部分提交不起作用。当表单中有 required=true 的空字段时会发生此问题。

我在&lt;h:panelGroup&gt; 中更新了&lt;p:panel&gt;

发件人:

<p:panel ... >
    ...
    <h:panelGroup ...>
        <!-- Form inside -->
    </h:panelGroup>
    ...
</p:panel>

<h:panelGroup ... >
    ...
    <h:panelGroup ...>
        <!-- Form inside -->
    </h:panelGroup>
    ...
</h:panelGroup>

【讨论】:

    猜你喜欢
    • 2014-03-31
    • 1970-01-01
    • 2021-03-14
    • 2018-11-08
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    相关资源
    最近更新 更多