Jsf 2 Primefaces:表排序和行编辑don';我们不能一起工作
我创建了一个简单的PrimeFaces4.0表,支持行编辑和列排序。我创建了两个条目并按降序排列。现在,当我使用行编辑器更改一行的值时,保存该行后,另一行的数据将覆盖该行!当我重新加载表格时,一切又恢复正常 以下是所有步骤:Jsf 2 Primefaces:表排序和行编辑don';我们不能一起工作,jsf-2,primefaces,Jsf 2,Primefaces,我创建了一个简单的PrimeFaces4.0表,支持行编辑和列排序。我创建了两个条目并按降序排列。现在,当我使用行编辑器更改一行的值时,保存该行后,另一行的数据将覆盖该行!当我重新加载表格时,一切又恢复正常 以下是所有步骤: 使用SpringRoo创建一个简单的项目(只有一个实体有三个字符串字段) 在pom.xml中将primefaces设置为4.0版,并将源代码更改为primefaces 4.0 向表中添加了行编辑和列排序 启动服务器并输入第一个条目(所有值均为“1”),第二个条目(所有值均为
<p:dataTable editable="true" id="list" value="#{customerBean.allCustomers}" var="customer" rendered="#{customerBean.dataVisible}" resizableColumns="false" paginator="true" paginatorTemplate=" {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,25,50" rows="10">
<p:ajax event="rowEdit" listener="#{customerBean.onRowEdit}" update=":growlForm:growl" />
<p:columns value="#{customerBean.columns}" var="column" columnIndexVar="colIndex"
sortBy="#{customer[column]}">
<f:facet name="header">
<h:outputText value="#{applicationBean.getColumnName(column)}" />
</f:facet>
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{customer[column]}" /></f:facet>
<f:facet name="input"><p:inputText id="#{customer[column]}Input" value="#{customer[column]}" style="width:96%"/></f:facet>
</p:cellEditor>
</p:columns>
<p:column style="width:6%">
<p:rowEditor />
</p:column>
它是Roo、Primefaces、JSF还是JQuery的bug???
有什么提示或解决方法吗?行编辑后刷新表而不丢失当前排序和分页的最简单方法是什么
谢谢!!!
Alex在primefaces 4.0中,您的
sortBy
应该是这样的sortBy=“#{column}”
而不是
`#{customer[column]}`
您的customerBean必须是ViewScope,或者如果您有SessionScope,则需要执行以下操作,如我的示例所示:
<p:dataTable id="settingsTbl" value="#{settingsBean.settingsList}" var="item" editable="true">
public List getSettingsList(){
如果(设置列表==null){
settingsList=settingsFacade.findAll();
}
返回设置列表;
}
<p:dataTable id="settingsTbl" value="#{settingsBean.settingsList}" var="item" editable="true">
public List<Settings> getSettingsList() {
if(settingsList==null){
settingsList = settingsFacade.findAll();
}
return settingsList;
}