2012-11-10 72 views
2

我有一列PrimeFaces DataTable,名爲'name',行擴展'description'。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 width="10"> 
      <p:rowToggler /> 
     </p:column> 

     <p:column headerText="Category name" sortBy="#{customerCategory.name}" width="740"> 
      <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> 
+0

如果dataTable已啓用選擇,則根本不顯示擴展。不知道這是否是有意設計的。 – perissf

+0

@perissf用代碼示例更新了我的問題。這有效,當我點擊擴展圖標時,它展開該行,但也打開對話框。我想只顯示對話框,當用戶點擊名稱列。 – kristu

回答

0

不是使整列打開的對話框中,你可以更新列中的outputTextcommandLink,這將仍然使用AJAX來做出支持bean的電話:

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