PrimeFaces Datatable - 列重新排序失败

时间:2015-02-04 17:00:00

标签: jquery jsf jsf-2 primefaces

我对PrimeFaces有一点问题,我正在尝试向colReorder事件添加一个事件监听器,但是当我添加它时,整个东西都失败了 Uncaught SyntaxError:Unexpected token

代码如下所示:

<p:dataTable
   width="100%" 
   value="#{myBean.getItems()}"
   var="item"
   id="resultList"
   draggableColumns="true"
>
<p:ajax event="colReorder" listener="#{myController.onColumnReorder}" />

...

支持bean:

@Named
@RequestScoped
public class MyController implements Serializable{

    public void onColumReorder(ReorderEvent event) {
        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Row Moved", "From: " + event.getFromIndex() + ", To:" + event.getToIndex());
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}

奇怪的是,如果我删除p:ajax一切正常,我可以更改列。

任何想法,这是一个已知的错误还是我错过了什么?

为了避免混淆,getItems在sessioncoped bean中看起来像这样:

@Named
@SessionScoped
   public class MyBean extends DataModel<E> implements Serializable {
   private List<E> items;

   ...

  public List<E> getItems () {
  return items;
}

1 个答案:

答案 0 :(得分:0)

实际上,org.primefaces.event.ReorderEvent似乎不允许进行列重新排序,但仅用于行重新排序。 您应该使用AjaxBehaviorEvent作为方法的参数,如:

public void onColumReorder(AjaxBehaviorEvent event) {

}