【问题标题】:Editable Datatable using a Dialog in JSF 2.0使用 JSF 2.0 中的对话框可编辑数据表
【发布时间】:2011-01-14 08:55:10
【问题描述】:

我目前在 JSF 2.0 中运行我的 Web 应用程序,它也使用 Primefaces 2.2RC2。

我知道 primefaces 使您能够拥有可编辑的行,但对于我的项目,如果用户单击表中的 commandButton 会显示一个预先填充了该特定行值的对话框,并且用户可以编辑那样排。

我得到这个工作的唯一方法是在包含命令按钮的列中,将该行内容作为参数传递,如下例所示:

<p:dataTable var="car" value="#{myBean.cars}" id="carList">  
   <h:column>
         <h:inputText value="#{car.id}" style="width:100%"/> 
   </h:column>

   <h:column>
        <h:inputText value="#{car.name}" style="width:100%"/> 
   </h:column>
   <h:column>
        <h:commandButton actionListener=#{myBean.updateRow} onsuccess="editCardDialog.show()" >
           <f:param name="carId" value=#{car.id} />
           <f:param name="carName" value=#{car.name} />
        </h:commandButton>
    </h:column>

    ...
</p:dataTable>

所以我的问题是这样的,目前我让它工作的唯一方法是在我的支持 bean 中创建虚拟临时全局变量来设置参数,这样当我的对话框打开时它可以引用这样的值

     //myBean.java
     private String tempCarId;
     private String tempCarName;

     public void setTempCarId(String tempCarId) {
          this.tempCarId = carId;
     }

     public String getTempCarId() {
          return tempCarId;
     }

     public void setTempCarName(String tempCarName) {
          this.tempCarName = carName;
     }

     public String getTempCarName() {
          return tempCarName;
     }

     public void updateRow(ActionEvent event) {

            String carId = FaceContext...getParameterMap("carId");
            String carName = FacesContext...getParameterMap("carName");

            setTempCarId(carId);
            setTempCarName(carName);      
     }

然后在对话框中我将只引用那些临时变量

    <p:dialog>
        <h:inputText value=#{myBean.tempCarId} />
        <h:inputText value=#{myBean.tempCarName} />
    </p:dialog>

我不确定这是否是正确的做法。我的直觉告诉我这不是因为必须在我的 Bean 中创建临时变量似乎非常多余,以便我可以将它们传递给对话框。有谁知道这样做的更好更简洁的方法,所以我不必在我的支持 bean 中创建一百万个临时变量?

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:
    猜你喜欢
    • 2013-09-21
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多