Primefaces p:datatable覆盖选择中的p:selectmanycheckbox

Primefaces p:datatable覆盖选择中的p:selectmanycheckbox,primefaces,datatable,selectmanycheckbox,Primefaces,Datatable,Selectmanycheckbox,第一张图片显示了在数据表中选择的两个复选框。显示的数据表有两行。在行的第一个复选框中,您可以看到选择列表的括号。唯一的操作是选择复选框。没别的了 现在,当我重新加载页面或点击按钮时,状态会发生变化,如第二张图片所示 选择列表中仅选择最后一行复选框。 所以我在想,选择列表及其托管bean是否有问题 我在复选框上尝试了changelistener,但无法获取复选框的状态,无论是选中还是未选中。 所以我又把它拿走了 。。。 #{pathSearch.selectedSignalList1} 豆片

第一张图片显示了在数据表中选择的两个复选框。显示的数据表有两行。在行的第一个复选框中,您可以看到选择列表的括号。唯一的操作是选择复选框。没别的了

现在,当我重新加载页面或点击按钮时,状态会发生变化,如第二张图片所示

选择列表中仅选择最后一行复选框。 所以我在想,选择列表及其托管bean是否有问题

我在复选框上尝试了changelistener,但无法获取复选框的状态,无论是选中还是未选中。 所以我又把它拿走了

。。。
#{pathSearch.selectedSignalList1}
豆片段

@ManagedBean
@会议范围
公共类PathSearch实现可序列化{
私有列表selectedSignalList1;
盖特,塞特。。。
}
如果有人知道我的错误在哪里,我会很高兴。也许您有这样一个例子。

使用


在行展开中,每行中的选择列表指向相同的属性,
selectedSignalList1
。您需要在其中使用一个列表/数组,并将行索引作为键,或者使用hashmap和业务键。大概是


在豆子里

@ManagedBean
@会议范围
公共类PathSearch实现可序列化{
private ArrayList selectedSignalList=新建ArrayList();
盖特,塞特。。。
}
这样,
p:rowexpansion
中的每个
p:selectManyCheckbox
都有自己的列表支持本地选择

提交时您要做什么,以及当您需要加载提交的数据(例如从数据库中加载并在屏幕上显示)时如何聚合或还原,这取决于您的实施。

使用


在行展开中,每行中的选择列表指向相同的属性,
selectedSignalList1
。您需要在其中使用一个列表/数组,并将行索引作为键,或者使用hashmap和业务键。大概是


在豆子里

@ManagedBean
@会议范围
公共类PathSearch实现可序列化{
private ArrayList selectedSignalList=新建ArrayList();
盖特,塞特。。。
}
这样,
p:rowexpansion
中的每个
p:selectManyCheckbox
都有自己的列表支持本地选择


提交时您要做什么,以及当您需要加载提交的数据(例如从数据库加载并在屏幕上显示)时如何聚合或恢复,这取决于您的实施。

好的,Kukeltje是正确的。谢谢。有时候这很容易。我发现,这个值=“#{pathSearch.selectedSignalList[signalIndex]}”列表必须用空列表填充,否则会出现IndexOutOfBoundsException。好的,Kukeltje是对的。谢谢。有时候这很容易。我发现,这个值=“#{pathSearch.selectedSignalList[signalIndex]}”列表必须用空列表填充,否则会出现IndexOutOfBoundsException。