我在我的 Web 应用程序中使用JSF和Primefaces 。
我正在使用primefaces 的p:datatable id="jobEditTable"组件。
在此我可以选择删除一些行。
在数据表中,我在单击该按钮时有一个删除按钮,我正在显示一个 p:dialog id="deleteJob"然后我在p:dialog 中填写一些删除的原因,然后我单击p:dialog中的一个命令链接然后它调用我正在清除数据列表并再次创建的一个动作侦听器。
并且 onClick 该命令链接我正在更新 jobEditTable 并隐藏该 p:dialog。
<p:datatable id="jobEditTable" value="#{mastersBean.dataList}"..../>
. . .. . . . . . .
<p:commandLink actionListener="#{tableBean.deleteRow}" update="jobEditTable" oncomplete="deleteJob.hide()">
<p:graphicImage value="/images/delete_button.png" />
<f:attribute name="model" value="#{tableBean.delCode}"></f:attribute>
</p:commandLink>
一切正常,数据表也令人耳目一新。
但是 ,如果我们在删除和执行该过程之前搜索一些工作,则数据表不会刷新。为什么??
意思是,如果我不使用任何过滤器而不搜索,则数据表正在刷新如果我删除了某些行,则数据表正在刷新,但在搜索和删除数据表后不刷新..
为什么会这样??
我的 bean 在视图范围内。
这是我的名为 MastersBean 的 ManagedBean
public void deleteDetails(ActionEvent e)
{
String id=(String)e.getComponent().getAttributes().get("param");
........deleting data from database according to id.........
dataList.clear();
..........updating datalist again....................
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Successfully Deleted"));
}