Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf primefaces中的单元格编辑未更新该值_Jsf_Facelets_Primefaces - Fatal编程技术网

Jsf primefaces中的单元格编辑未更新该值

Jsf primefaces中的单元格编辑未更新该值,jsf,facelets,primefaces,Jsf,Facelets,Primefaces,我的primefaces应用程序中有一个datatable。前端的代码已更改 <!-- Start of customer datatable --> <p:dataTable var="customer" value="#{customerBean.customers}" paginator="true" selection="#{customerBean.selectedCustomer}" selectionMod

我的primefaces应用程序中有一个datatable。前端的代码已更改

    <!-- Start of customer datatable -->
            <p:dataTable var="customer" value="#{customerBean.customers}" paginator="true" selection="#{customerBean.selectedCustomer}" 
            selectionMode="single" onRowSelectUpdate=":custList" onRowSelectComplete="custTab.show()" id="custList" widgetVar="custList" update=":custList">
                <f:facet name="header">
                List of Customers
                    <p:outputPanel>
                        <p:commandButton value="+" type="button" onclick="addCustDlg.show()"/>
                     </p:outputPanel>
                </f:facet>


                <p:column sortBy="#{customer.id}" filterBy="#{customer.id}" update=":custList">
                    <f:facet name="header">
                        <h:outputText value="ID"/>
                    </f:facet>
                    <h:outputText value="#{customer.id}"/>
                </p:column>

                <p:column sortBy="#{customer.name}" filterBy="#{customer.name}" headerText="NAME" filterMatchMode="contains" update=":custList">
                  <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{customer.name}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{customer.name}"/>
                    </f:facet>
                  </p:cellEditor>
                </p:column>

                <p:column sortBy="#{customer.description}" filterBy="#{customer.description}" headerText="DESCRIPTION">
                  <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{customer.description}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{customer.description}"/>
                    </f:facet>
                  </p:cellEditor>
                </p:column>

                <p:column sortBy="#{customer.signupDate}" filterBy="#{customer.signupDate}" headerText="SIGN UP DATE">
                    <f:facet name="output">
                        <h:outputText value="#{customer.signupDate}"/>
                    </f:facet>
                </p:column>

                <p:column sortBy="#{customer.validUntil}" filterBy="#{customer.validUntil}" headerText="EXPIRY DATE">
                  <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{customer.validUntil}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{customer.validUntil}"/>
                    </f:facet>
                  </p:cellEditor>
                </p:column>

                <p:column sortBy="#{customer.status}" filterBy="#{customer.status}" headerText="STATUS">
                  <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{customer.status}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{customer.status}"/>
                    </f:facet>
                  </p:cellEditor>
                </p:column>

                <p:column headerText="CREATION DATE" sortBy="#{customer.creationDate}" filterBy="#{customer.creationDate}">
                    <f:facet name="output">
                        <h:outputText value="#{customer.creationDate}"/>
                    </f:facet>
                </p:column>

                <p:column headerText="LAST UPDATE DATE" sortBy="#{customer.lastUpdateDate}" filterBy="#{customer.lastUpdateDate}">
                    <f:facet name="output">
                        <h:outputText value="#{customer.lastUpdateDate}"/>
                    </f:facet>
                </p:column>

                <p:column headerText="Options">
                    <p:rowEditor/>
                </p:column>

            </p:dataTable>
            <!-- End of dataTable (customer datatable) -->
但是,在更新事件中,当我编辑表中的单元格时,我不会获得属性的新更新值

如下图所示,当我编辑ID为1的条目的状态从11到4时,在函数custRowEdit中,当我尝试获取customer对象时,我仍然将customer的状态设置为11而不是4


有人能帮我理解为什么不设置单元格的值吗

从调用custRowEdit(RowEditEvent事件)方法的位置。我在你的代码中没有任何相关的东西

为了使侦听器调用,请在datatable声明中添加以下属性

rowEditListener=“#{customerBean.listenerInBackingBean}”



检查customerBean.customers的实施情况。每次调用该方法时,我都会从数据库中重新加载内容。错。这应该发生在构造函数中。现在一切正常。还以为是JavaScript错误…

谢谢这帮了我

我可以补充一点,如果有@SessionScoped托管bean,可以使用reset()方法将列表重置为null,然后从查询中惰性地填充列表,而不是从构造函数中的查询加载列表。然后可以使用f:事件在页面加载时调用重置:

    <f:view>
        <f:metadata>
            <f:event type="preRenderView" listener="#{sessionScopedBean.reset}"/>
        </f:metadata>
    </f:view>        

您将丢失p:ajax事件来触发方法、函数或在单元格编辑后执行的任何操作

有点像

<p:ajax event="cellEdit" listener="#{mBean.onCellEdit}" update="elementX" />


我遇到了一个类似的情况,通过从dataTable中删除update=”“标记解决了这个问题。表的默认行为是更新行,在我的例子中,这显然没有发生。

my bad。。。我在dataTable中指定了rowEditListener。然而,这个问题仍然存在。我仍然得到陈旧的值,而不是更新的值。您是否解决了此问题?这更适合用于注释,因为它不是真正的答案
    <f:view>
        <f:metadata>
            <f:event type="preRenderView" listener="#{sessionScopedBean.reset}"/>
        </f:metadata>
    </f:view>        
<p:ajax event="cellEdit" listener="#{mBean.onCellEdit}" update="elementX" />