1

我有一个表格,我想单击一个单元格并显示一个对话框,但只有我有 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>
4

1 回答 1

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>  
    

    Wheredialog指的是一个对话框,您将在同一页面上使用widgetVar="dialog". 您可以对您感兴趣的所有单元格重复此操作

于 2013-10-03T05:06:02.910 回答