【问题标题】:Rendering datatable column with ajax and jsf使用 ajax 和 jsf 渲染数据表列
【发布时间】:2014-04-15 07:55:50
【问题描述】:

我有一个数据表列出了一些包含几个细节的项目:

<h:dataTable id="versionInterfaces_datatable"
        styleClass="datatable" rowClasses="odd,even"
        value="#{versionToolManager.version.interfaces}"
        var="lInterface">

   <h:column>
      <f:facet name="header">Interface Name</f:facet>
      <h:commandLink id="versionInterfacesName_columnLink"
            value="#{lInterface.name}"
            action="#{interfaceManager.consult}">
        <f:setPropertyActionListener
              target="#{interfaceManager.interfaceEntity}"
              value="#{lInterface}" />
      </h:commandLink>
      <h:outputText id="versionInterfacesName_column" value="#{lInterface.name}" />
   </h:column>

   <h:column id="interfaceVersions_column">
       <f:facet name="header">Interface Version(s)</f:facet>
       <ui:repeat value="#{lInterface.versionsInterface}" var="lVersionI"
              varStatus="lStatus">
           <h:outputText rendered="#{lVersionI.versionsTools.contains(versionToolManager.version)}" value=" #{lVersionI.name} | " />
       </ui:repeat>
   </h:column>

   <h:column>
      <f:facet name="header">Interface Description</f:facet>
      <h:outputText id="versionInterfacesDescription_column"
           value="#{lInterface.description}" />
   </h:column>

然后我有一个按钮调用模式视图允许添加项目:

<h:commandButton id="#{id}OpenModal_button"
   value="#{openButtonValue}"
  onclick="document.getElementById('#{formId}:#{modal_panel}').style.display='block'; return false;" />
<br />

关闭此模式视图时,我尝试“刷新”数据表以查看添加的项目:

    <h:commandButton id="#{id}CloseModal_button"
      value="#{closeButtonValue}">
      <f:ajax execute="@this"
        render="#{renderOnClose} #{formId}:#{modal_panel}" />
    </h:commandButton>

但是我的数据表的列并没有全部更新,“接口版本”列对于新项目对应的新行是空的,即使当我保存时,它们已经被很好地添加了。

你有什么想法吗?

【问题讨论】:

    标签: ajax jsf-2 datatable


    【解决方案1】:

    问题是&lt;f:ajax execute="@this" ...

    使用&lt;f:ajax execute="@all" ...

    【讨论】:

    • 感谢您的回答,但它没有改变任何东西,该列没有更新。但是如果你认为这是关于渲染的范围,也许我应该在 render 属性中添加一些东西?
    【解决方案2】:

    所以我成功地解决了我的问题,但这不是语法问题,而是模型和 bean 结构的错误使用。在不深入细节的情况下,我试图访问未链接到相应项目的数据。

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2018-01-19
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多