刷新数据表

问题描述:

帅哥,你们有没有人知道如何做到这一点?刷新数据表

我有一个页面上有一个数据表。它有一个按钮来删除一行。该按钮按预期工作,当您单击它时,它将删除选定的行。我还有另一个按钮,打开一个弹出窗口,您可以在其中搜索项目并将它们添加到该数据表中。当你点击弹出窗口上的“选择”按钮时,我很难弄清楚如何刷新数据表。

我的解决方案是有一个隐藏的按钮,将刷新数据表。它可以工作,当我litterally点击它。但是当我使用JavaScript在弹出窗口上触发点击事件时,它并不总是有效。有时会刷新,有时不会。

什么是实际刷新数据表的最佳方式?

+0

你正在使用哪个jsf版本? – Dejell 2011-01-06 06:58:33

如果使用JSF2.0,有一个选项与

<h:form> 
... 
...(here you have the binding data) 
<h:commandButton action="#{yourbean.updateRows}" > 
<f:ajax render="tableName" /> 
</h:commandButton> 
</h:form> 

更新您的应用程序的一部分EDITED

如果你想从JavaScript调用它使用:

document.getElementById('elementName').click(); 
+0

谢谢。这实际上是我目前的解决方案,但有没有一种通过JavaScript调用commandButton的方法?我用过这个:弹出窗口:opener.refreshDataTable();然后在我的父窗口(包含要刷新的数据表的那个窗口)上:函数refreshDataTable(){('。addOcc')。click(); \t \t \t var btn = document.getElementById(“mainForm:dt:composite_dataTable_dt”); \t \t \t btn.click(); \t \t} – raimun 2011-01-06 10:13:57

如何在弹出窗口中访问DataTable?通过保持它在一些会话变量,并在你的父页面显示数据表通过一些UI组件像GridView?在这种情况下,您可以通过javascript从您选择popu窗口的位置重新加载父窗口。例如。 window.opener.location.reload();

+0

感谢您的回复。是的,我确实将它存储在会话中。然而,我的另一种选择实际上是重新加载整个页面,因为我注意到点击“删除”按钮实际上删除了我选择的行,然后刷新数据表而不刷新整个页面,也许我可以做的东西实际上只需点击弹出窗口上的“选择”按钮即可刷新数据表。 – raimun 2011-01-06 06:43:22

我能想到的.. Datatable.AcceptChanges();但是,这对于C#..