XHTML 文件:
<p:tab title="firstTab" id="FT">
<p:dataTable var="..." value="#{...}" id="firstTable" selectionMode="multiple"
selection="#{myController.selectedRows}">
<p:column>...</p:column>
<p:column>...</p:column>
<p:commandButton value="View" action="#myController.viewSelected}"/>
</p:dataTable>
</p:tab>
<p:tab title="secondTab" id="ST">
<p:dataTable var="..." value="#{...}" id="secondTable" selectionMode="multiple"
selection="#{myController.selectedRows}">
<p:column>...</p:column>
<p:column>...</p:column>
<p:commandButton value="View" action="#myController.viewSelected}"/>
</p:dataTable>
</p:tab>
托管 Bean:
@ManagedBean
@RequestScoped
public class MyController{
MyObject[] selectedRows;
//get+set
public void viewSelected(){
System.out.println(selectedRows.length)
}
}
控制台输出有所不同。有时输出是 0 但通常 selectedRows 内容会变得困惑。如果我在两个数据表中都有选择并按下两个命令按钮之一,结果是混合的。我猜测发生这种情况是因为按钮没有特定的 id,或者也许我应该为每个数据表使用不同的业务属性。此问题的正确解决方案是什么?
谢谢!
最佳答案
您使用的 PF 版本是什么?
此外,如果该 commandButton
不在列或其他任何内容内,那么他有什么问题?
如果你想成为数据表页脚,你必须这样做:
<f:facet name="footer">
<p:commandButton value="View" action="#myController.viewSelected}"/>
</facet>
将两个数据表中选定的行分配给同一个数组的方式,我想说这不是一个好的做法,事实上我从未见过这样的事情!有什么意义?即使您希望有两个具有相同记录的数据表,您至少应该为每个表中的选定记录分配一个不同的数组/列表
,并将它们放入不同的表单
,如果您不想在仅按下命令按钮时触发这两个事件...
关于java - AccordionPanel 包含带有选择模式 ="multiple"的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8536813/