【发布时间】:2012-01-11 13:17:25
【问题描述】:
我有一个richfaces 项目,一个看似简单的事情不想工作:( 查看代码:
<rich:panel header="Admin home" id="panel">
<h:form>
<rich:dataTable id="userlisttable" value="#{adminBean.userList}"
var="user" style="width:100%">
<rich:column id="banDate" headerClass="dataTableHeader"
label="Ban date" sortable="true" sortBy="#{user.banDate}"
sortIconAscending="dataTableAscIcon"
sortIconDescending="dataTableDescIcon">
<f:facet name="header">
<h:outputText value="Ban Date" />
</f:facet>
<h:outputText value="#{user.banDate}" />
</rich:column>
<rich:column id="actions" headerClass="dataTableHeader"
label="Actions" sortable="false">
<f:facet name="header">
<h:outputText value="Actions" />
</f:facet>
<h:panelGrid columns="4">
<h:outputText value="Ban user for" />
<a4j:commandLink action="#{adminBean.banUser}" value="One week"
style="font-size:16px" reRender="banDate" immediate="true">
<f:setPropertyActionListener target="#{adminBean.user}"
value="#{user}" />
</a4j:commandLink>
</h:panelGrid>
</rich:column>
</rich:dataTable>
</h:form>
</rich:panel>
它的行为很奇怪:动作 (actionBean.banUser) 被执行,然后 userList 的 getter 也被执行,但在页面上什么也没有发生。如果我手动刷新它 (F5),则会出现新的修改数据。
有什么想法吗? 谢谢,本
【问题讨论】:
-
禁止用户后是否更新 adminBean.userList?
-
是的。我在 getter 中有一个数据库查询,正如我所提到的,调用了 getter。我也尝试将查询放入操作中,因此如果更新(禁止)成功,它会被触发,但仍然没有:(
-
尝试重新渲染整个表格而不是一列
-
尝试了这个和 ccheneson 的想法,但没有一个能解决我的问题。