java - AccordionPanel 包含带有选择模式 ="multiple"的数据表

标签 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: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/

相关文章:

java - 在java中的gremlin titan中过滤出边数的顶点

jsf - 如何在 p :calendar 中使用 java.time.ZonedDateTime/LocalDateTime

css - 在 PrimeFaces 中将图标从 jQuery UI 更改为 FontAwesome

jsf - JSF返回带有纯/原始XHTML/XML/EL源的空白/未解析页面,而不是呈现的HTML输出

jsf - PrimeFaces DataTable rowSelect 无法选中复选框

Java 泛型难题 - 获取泛型类型的对象的类/类型,以便稍后确定类型

java - 由于需要更新,如何检测浏览器是否会阻止 java applet

java - 如何使用curl从php页面将参数传递到java servlet?

java - 将托管 bean 转换为 EJB

java - 如何将 primefaces 添加到我的 jsp 和 servlet 导航栏