您实际上无法从表中更新表的值。但是,您可以使用它
p:remoteCommand来实现。另外,我可能会使用对整个表cellEdit事件(而不是单个
p:ajax你的
pe:inputNumber)。总体结果将是:
<p:remoteCommand name="refreshFooter" update=":formName:outputTotal"/>...<p:dataTable id="myTable" value="#{myBean.someList}" var="currentItem"> <p:column headerText="Header1"> <h:outputText value="#{currentItem.name}" /> </p:column> <p:column headerText="Header2"> <pe:inputNumber value="#{currentItem.inputVal}"> <p:ajax event="change" listener="#{myBean.changeListener}" process="@this" oncomplete="refreshFooter();" update="outputVal"/> </pe:inputNumber> </p:column> <p:column headerText="Header3"> <h:outputText id="outputVal" value="#{currentItem.outputVal}" /> </p:column> <f:facet name="footer"> Total: <h:outputText id="outputTotal" value="#{myBean.total}" /> </f:facet></p:dataTable>
请注意,您 可能需要
添加
partialSubmit="true"到中
p:ajax,这样仅提交组件的数据。如果您喜欢cellEdit事件的想法,则需要使dataTable可编辑,并在中添加以下内容
p:dataTable,并摆脱掉
p:ajax内部
pe:inputNumber
<p:ajax event="cellEdit" partialSubmit="true" listener="#{myBean.onCellEdit}" process="@this" oncomplete="refreshFooter();"/>
祝好运!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)