Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 2 Primefaces:表排序和行编辑don';我们不能一起工作_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 Primefaces:表排序和行编辑don';我们不能一起工作

Jsf 2 Primefaces:表排序和行编辑don';我们不能一起工作,jsf-2,primefaces,Jsf 2,Primefaces,我创建了一个简单的PrimeFaces4.0表,支持行编辑和列排序。我创建了两个条目并按降序排列。现在,当我使用行编辑器更改一行的值时,保存该行后,另一行的数据将覆盖该行!当我重新加载表格时,一切又恢复正常 以下是所有步骤: 使用SpringRoo创建一个简单的项目(只有一个实体有三个字符串字段) 在pom.xml中将primefaces设置为4.0版,并将源代码更改为primefaces 4.0 向表中添加了行编辑和列排序 启动服务器并输入第一个条目(所有值均为“1”),第二个条目(所有值均为

我创建了一个简单的PrimeFaces4.0表,支持行编辑和列排序。我创建了两个条目并按降序排列。现在,当我使用行编辑器更改一行的值时,保存该行后,另一行的数据将覆盖该行!当我重新加载表格时,一切又恢复正常

以下是所有步骤:

  • 使用SpringRoo创建一个简单的项目(只有一个实体有三个字符串字段)
  • 在pom.xml中将primefaces设置为4.0版,并将源代码更改为primefaces 4.0
  • 向表中添加了行编辑和列排序
  • 启动服务器并输入第一个条目(所有值均为“1”),第二个条目(所有值均为“2”)
  • 对任何列进行降序排序(结果:“2”在顶部,“1”在底部)
  • 使用RowEditor编辑任意值并保存
  • 现在,已编辑行的值将被视图中其他行的值覆盖
  • 这是我的jsf代码:

        <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;
    }