细胞选择DataTable PRIMEFACES?

时间:2013-10-01 15:22:56

标签: jquery jsf jsf-2 primefaces datatable

我有一张桌子,我想点击一个单元格并向我显示一个对话框 但只有我有rowSelect事件,有可能这样做吗?...

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

 <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>

1 个答案:

答案 0 :(得分: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. 向panelGrid添加onclick属性,该属性将触发菜单

        <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"在同一页面上的对话框。您可以对您感兴趣的所有单元格重复此操作