我有一个数据表。表的每一行都有一个commandButton
called 'Remove',这应该从模型和视图中删除该行并就地执行更新。作为页脚,我还有另一个commandButton
called '删除每一行'.
最后一个按钮有效。我单击它,每一行都会从模型中删除(即ArrayList
包含元素变为空)并且dataTable
and footer facet
在视图中重新渲染(或更新)。
另一方面,当我单击其中一行上的按钮将其删除时,它部分起作用。相应的元素已从模型中删除,但视图未更新。该行仍然存在于dataTable
和footer facet
没有改变。
我的代码中有以下一段代码users.xhtml
.
<f:metadata>
<f:viewParam name="id" value="#{users.id}" />
<f:event type="preRenderView" listener="#{users.init}" />
</f:metadata>
...
<h:form id="usersForm">
<p:outputPanel>
<p:dataTable id="userTable" value="#{users.user.friendList}" var="friend">
<p:column>
<h:outputText value="#{friend.name}" />
</p:column>
<p:column>
<p:commandButton action="#{users.user.removeFriend(friend)}"
ajax="true"
update="userTable somethingElse" process="@this"
onerror="errorDialog.show();"
icon="ui-icon-delete"
title="delete user">
</p:commandButton>
</p:column>
<f:facet id="somethingElse" name="footer">
aye: ${users.user.xxx}
</f:facet>
</p:dataTable>
</p:outputPanel>
<p:commandButton action="#{users.user.removeAllFriends()}" ajax="true"
update="userTable somethingElse"
process="@this"
icon="ui-icon-close"
value="delete all friends?">
</p:commandButton>
</h:form>
那么,您认为这里的问题是什么?
我正在使用 JSF 2.0 和 Primefaces 3.0
我从我们当前的 PF 3.0 页面之一中发现了这个问题。如果你使用它会起作用update="@form"
反而。我还没有时间去调查真正的原因,以便我可以将其报告给 PF 人员,因为这个问题并未在所有页面中出现。即使在同一张表中,不同的按钮也会按预期工作。
试一试:
<p:commandButton update="@form" ... />
Update: 仔细想想,这可能与存在有关process="@this"
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)