【发布时间】:2012-02-06 20:24:31
【问题描述】:
我有一个数据表。表的每一行都有一个名为 'Remove' 的commandButton,它应该从模型和视图中删除该行并就地执行更新。作为页脚,我还有另一个 commandButton,名为 '删除每一行'。
最后一个按钮有效。我点击它,每一行都从模型中删除(即包含元素的ArrayList 变为空)并且dataTable 和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 版本?如果你改用
update="@form"会怎样? -
抱歉说的不好,但非常感谢,再次:)关于多个问题,下次我会尽力做到最好的:)
-
我把它作为答案转发了:)
-
@BalusC - 我将我的第二个问题作为单独的问题重新发布:) stackoverflow.com/questions/8804020/…
标签: ajax jsf jsf-2 primefaces