PrimeFaces 可扩展和可选行

Posted

技术标签:

【中文标题】PrimeFaces 可扩展和可选行【英文标题】:PrimeFaces expandable and selectable row 【发布时间】:2012-11-10 20:54:37 【问题描述】:

我有一个 PrimeFaces 数据表,其中有一列称为“名称”,还有一个带有“描述”的行扩展。

是否可以通过单击使这些行可选择,但在展开时无法触发选择事件?

编辑

<h:form id="customerCategoryListForm">
    <p:dataTable var="customerCategory" value="#admin.customerCategories" id="customerCategoryList" 
        paginator="true" rows="10" 
        rowKey="#customerCategory.id" selectionMode="single" selection="#admin.selectedCustomerCategory"
        paginatorTemplate="CurrentPageReport FirstPageLink PreviousPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"
        rowsPerPageTemplate="10,25,50"
        emptyMessage="Nincs adat!">
        <p:ajax event="rowSelect" update=":customerCategoryDialogForm:customerCategoryDisplay" oncomplete="customerCategoryDialog.show()" />  

        <f:facet name="header">  
            Categories
        </f:facet>

        <p:column >
            <p:rowToggler />
        </p:column>

        <p:column headerText="Category name" sortBy="#customerCategory.name" >
            <h:outputText value="#customerCategory.name" />
        </p:column>

        <p:rowExpansion>
            <h:outputText value="#customerCategory.description" />
        </p:rowExpansion>

        <f:facet name="footer">
            <p:commandButton value="Új hozzáadása" />
        </f:facet>

    </p:dataTable> 
</h:form>

【问题讨论】:

如果dataTable开启了选择,则完全不显示展开。不确定这是否是设计使然。 @perissf 用代码示例更新了我的问题。这有效,当我单击扩展图标时,它会扩展行,但也会打开对话框。我只想在用户单击名称列时显示对话框。 【参考方案1】:

您可以将列中的 outputText 更新为 commandLink,而不是让整个列打开对话框,这仍将使用 AJAX 来调用支持 bean:

<p:commandLink value="#customerCategory.description" actionListener="#customerCategory.fooMethod(customerCategory)" update=":customerCategoryDialogForm" oncomplete="PF('customerCategoryDialog').show();"/>

【讨论】:

以上是关于PrimeFaces 可扩展和可选行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI 可排序和可选

存储可选管道多行字符串和可选参数的批处理脚本

ApiControllerAttribute 和可选参数

WinRT和可选参数发行

如何结合解构赋值和可选链接?

命名参数和可选参数,以及 WCF