【问题标题】:Cell Selection DataTable PRIMEFACES?单元格选择数据表 PRIMEFACES?
【发布时间】:2013-10-07 20:13:46
【问题描述】:

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

【问题讨论】:

    标签: jquery jsf jsf-2 primefaces datatable


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 1970-01-01
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 2019-03-01
      • 1970-01-01
      • 2013-05-02
      相关资源
      最近更新 更多