问题与号码:AJAX事件colReorder

问题描述:

里面一个p:dataTable我有显示FacesMessages一些Ajax事件当我做一些修改问题与号码:AJAX事件colReorder

<p:ajax event="cellEdit" listener="#{userRegistrationController.cellEditAction}" 
          update=":currentUserForm:currentUsersFormMessages"/> 
<p:ajax event="colResize" listener="#{userRegistrationController.colResizeAction}" 
          update=":currentUserForm:currentUsersFormMessages"/> 
<p:ajax event="colReorder" listener="#{userRegistrationController.colReorderAction}" 
          update=":currentUserForm:currentUsersFormMessages"/> 

无法运作的唯一一个是“colReorder”之一,当我调用该方法我有javax.el.MethodNotFoundException:未找到方法:[email protected]042d.colReorderAction(javax.faces.event.AjaxBehaviorEvent)。 以下是方法colResizeActioncolReorderAction,我不明白为什么一个工作,其他不工作。

public void colResizeAction(ColumnResizeEvent event){ 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
      "the width of column "+event.getColumn()+" is now "+event.getWidth() 
    )); 
} 

public void colReorderAction(ReorderEvent event){ 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
      "reordered "+event.getComponent().toString())); 
} 

ReorderEvent class是否有问题?

与豆Action参数TY变化行动的行为试着像下面的代码

public void onReorder(AjaxBehaviorEvent event) { 
DataTable dataTable = (DataTable) event.getComponent(); 
List<UIColumn> columns = dataTable.getColumns(); 

//build new column order to store 
for(UIColumn : column columns) 
{ 
    //read column names 
} 
//store list to db 
} 

参考Click here

的问题是,AJAX事件“colReorder”不支持listener参数组织。 primefaces.event.ReorderEvent。这就是为什么你有这个错误!正如上面提到的@Araf,colReorder事件支持AjaxBehaviorEvent事件。