Java 包含selectionMode=”的数据表的AccordionPanel;“多重”;
XHTML文件:Java 包含selectionMode=”的数据表的AccordionPanel;“多重”;,java,jsf,primefaces,Java,Jsf,Primefaces,XHTML文件: <p:tab title="firstTab" id="FT"> <p:dataTable var="..." value="#{...}" id="firstTable" selectionMode="multiple" selection="#{myController.selectedRows}"> <p:column>...</p:column>
<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>
控制台输出不同。有时输出为0,但通常selectedRows内容会出错。如果我在两个dataTable-s中都有选择,并按下两个commandButton-s中的一个,则结果是混合的。我猜这是因为按钮没有特定的id,或者我应该为每个数据表使用不同的业务属性。这个问题的正确解决方案是什么
<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>
谢谢 您使用的是什么PF版本
<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>
另外,如果命令按钮不在列或其他任何内容中,他怎么了?
如果要成为dataTable页脚,必须执行以下操作:
<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>
<f:facet name="footer">
<p:commandButton value="View" action="#myController.viewSelected}"/>
</facet>
将两个数据表中的选定行分配到同一个数组的方式,我认为这不是一个好的做法,事实上我从未见过这样的情况!有什么意义?即使您希望有两个具有相同记录的数据表,如果您不想只按一个命令按钮就触发这两个事件,您至少应该为每个表中选定的记录分配一个不同的数组/列表
,并将它们放在不同的表格中
<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>