使用rich:modalPanel编辑rich:extendedDataTable

时间:2011-09-23 10:12:18

标签: richfaces ajax4jsf

I have a <code>rich:extendedDataTable</code>.  Each row has a a4j:commandLink  as below.

Table Page:

     <a4j:commandLink     
      id="editlink" oncomplete="#{rich:component('editPanel')}.show()" 
      reRender="editPanel">

    <f:setPropertyActionListener value="#{archive}" 
      target="#{archiveOrderBean.currentOrder}" />

    <f:setPropertyActionListener value="#{row}" 
       target="#{archiveOrderBean.currentRow}" />

    <h:graphicImage value="/images/edit.png" 
       style="border:0;vertical-align: top;" />

    </a4j:commandLink>

点击链接后,rich:modalPanel将填充所选行的值。正确获取所选行的内容,但是当编辑模态面板中的数据时,该值不会反映在bean中。

Bean Getter and Setter: 

    <code>public ArchiveOrderModel getCurrentOrder() {
        return currentOrder;
    }

    public void setCurrentOrder(ArchiveOrderModel currentOrder) {
        this.currentOrder = currentOrder;
    }
    </code>

ModalPanel Page : below contents are included in the  <code>rich:modalPanel</code>     and       <code>h:form</code>

    <h:panelGrid columns="1">
                <a4j:outputPanel>
                    <h:panelGrid columns="2">
                        <h:outputText value="Name" />
                        <h:outputLabel value="SL_#{archiveOrderBean.currentOrder.structureId}" />
                        <h:outputText value="Client" />
                        <h:inputText value="#{archiveOrderBean.currentOrder.customer}"  style="width:200px"/>
                        <h:outputText value="DateCreated" />
                        <h:outputText value="#{archiveOrderBean.currentOrder.date}" style="width:200px" />
                        <h:outputText value="Description" />
                        <h:inputText value="#{archiveOrderBean.currentOrder.version}" style="width:200px" />
                         <h:outputText value="Order Desription" />
                        <h:inputText value="#{archiveOrderBean.currentOrder.orderType}" style="width:200px" />
                    </h:panelGrid>
                    <rich:message showSummary="true" showDetail="false" for="price" />
                </a4j:outputPanel>
                <a4j:commandButton value="Update" 
                    action="#{archiveOrderBean.updateStruct}"
                    reRender="auftragListNew"
                    oncomplete="if (#{facesContext.maximumSeverity==null}) #{rich:component('editPanel')}.hide();" >
                    </a4j:commandButton>
            </h:panelGrid>

任何人都可以帮我解决这个问题。我只需要知道如何将modalPanel值更新回bean。

1 个答案:

答案 0 :(得分:0)

问题是a4j:commandButton未正确放置在h:form中。我现在可以找到更新的值