2013-10-01 211 views
1

我有一个表,我想单击单元格,告诉我一个对话框 但只有我有rowSelect事件,有可能做到这一点?...单元格选择数据表PRIMEFACES?

所以在这种情况下,我点击一排,然后给我对象的值在一个对话框中,但我想点击一个块给我看一个对话框

<h:form id="frm1"> 
      <p:growl id="growl" showDetail="true"/> 
      <p:commandButton value="List" actionListener="#{tableBean.listCars()}" update="dtCar"/> 

      <p:dataTable id="dtCar" var="car" value="#{tableBean.carModel}" 
         selectionMode="single" > 

       <p:ajax event="rowSelect" listener="#{tableBean.readModel}" 
         update=":frm1:display :frm1:growl" oncomplete="carDialog.show()" /> 

       <p:column id="model"> 
        <f:facet name="header"> 
         Model 
        </f:facet> 
        <h:outputText value="#{car.model}" /> 
       </p:column> 

       <p:column id="year"> 
        <f:facet name="header"> 
         Year 
        </f:facet> 
        <h:outputText value="#{car.year}" /> 
       </p:column> 

       <p:column id="manufacturer"> 
        <f:facet name="header"> 
         Manufacturer 
        </f:facet> 
        <h:outputText value="#{car.manufacturer}" /> 
       </p:column> 

       <p:column id="color"> 
        <f:facet name="header"> 
         Color 
        </f:facet> 
        <h:outputText value="#{car.color}" /> 
       </p:column> 

       <p:column> 
        <p:commandButton id="viewButton" value="View" icon="ui-icon-search" 
            update=":frm1:display" oncomplete="carDialog.show()" actionListener="#{tableBean.leer(car)}"/>      
       </p:column> 
      </p:dataTable> 

      <p:dialog id="dialog" header="Car Detail" widgetVar="carDialog" resizable="false" 
         showEffect="clip" hideEffect="fold"> 

       <h:panelGrid id="display" columns="2" cellpadding="4"> 

        <h:outputText value="Model:" /> 
        <h:outputText value="#{tableBean.selectedCar.model}" /> 

        <h:outputText value="Year:" /> 
        <h:outputText value="#{tableBean.selectedCar.year}" /> 

        <h:outputText value="Manufacturer:" /> 
        <h:outputText value="#{tableBean.selectedCar.manufacturer}" /> 

        <h:outputText value="Color:" /> 
        <h:outputText value="#{tableBean.selectedCar.color}" /> 
       </h:panelGrid> 
      </p:dialog> 

     </h:form> 

回答

4

Primefaces不提供小区选择股票的支持。你需要即兴创作。

  1. 裹在一个面板部件

    <p:column id="model"> 
         <f:facet name="header"> 
          Model 
         </f:facet> 
         <h:panelGrid> 
          <h:outputText value="#{car.model}" /> 
         </h:panelGrid> 
        </p:column> 
    
  2. 所需细胞添加onclick属性到panelGrid中将触发菜单

    <p:column id="model"> 
         <f:facet name="header"> 
          Model 
         </f:facet> 
         <h:panelGrid onclick="dialog.show()"> 
          <h:outputText value="#{car.model}" /> 
         </h:panelGrid> 
        </p:column> 
    

    dialog是指一个对话框,你将会在与widgetVar="dialog"相同的页面上。您可以对您感兴趣的所有细胞重复此操作。

+0

一个绝妙的想法,谢谢= D – MitoCode

+0

@ J.A。别客气 – kolossus