嵌套数据表单行选择

时间:2014-04-14 16:08:49

标签: jsf-2 primefaces

我有多个数据表,它们处于单选模式。我知道我有多少个数据表以及如何引用它们,因为我在其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是“容器”或“根”表,并且使用分页器以“惰性”模式工作,因此可以显示可变数量的嵌套数据表。上面的代码不起作用,因为它取消选择所有内容,甚至是我选择的最后一行,如预期的那样。我希望最后一个继续被选中。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

为什么不在服务器端更新它们,而不是使用JavaScript?每个表都应具有selection="#{mrBean.selectedRow}"属性。您只需要将所有这些内容设置为null的{​​{1}}中的actionListener。然后,一个简单的<p:ajax event="rowSelect">将解决您的问题。