我有多个数据表,它们处于单选模式。我知道我有多少个数据表以及如何引用它们,因为我在其widgetVar属性中附加了一个索引。所以我可以通过“非安全”操作var dt = eval('dt' + index)
来引用它们。
我面临的问题是每当我在其中一个嵌套数据表中选择一行时,其他选项仍然存在,我想清理它们。
我尝试过类似的事情:
<p:ajax event="rowSelect" onstart="deseleccionarTablas()"/>
function deseleccionarTablas()
{
for (i=0; i < dtEstacionesSeleccionadas.getPaginator().cfg.rows; i++)
{
var dt = eval('dt' + i);
dt.unselectAllRows();
}
};
dtEstacionesSeleccionadas是“容器”或“根”表,并且使用分页器以“惰性”模式工作,因此可以显示可变数量的嵌套数据表。上面的代码不起作用,因为它取消选择所有内容,甚至是我选择的最后一行,如预期的那样。我希望最后一个继续被选中。
有什么想法吗?谢谢。
答案 0 :(得分:1)
为什么不在服务器端更新它们,而不是使用JavaScript?每个表都应具有selection="#{mrBean.selectedRow}"
属性。您只需要将所有这些内容设置为null
的{{1}}中的actionListener
。然后,一个简单的<p:ajax event="rowSelect">
将解决您的问题。