jsf-2 – 从bean触发/激活RowEditor以进行素数表单元内编辑启用p:dataTable

前端之家收集整理的这篇文章主要介绍了jsf-2 – 从bean触发/激活RowEditor以进行素数表单元内编辑启用p:dataTable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表面p:dataTable和 InCell editing enabled,并且想要为新添加的行触发/激活RowEditor.

XHTML的摘录

  1. <p:commandButton id="btnAddEntry" value="Add new row" actionListener="#{myBean.addNewCar}" ... update="carTable growl" process="@this carTable ..."/>
  2.  
  3. <p:dataTable id="carTable" var="car" value="#{myBean.cars}" ... editable="true">
  4. <p:column ...>
  5. <p:cellEditor>
  6. ...
  7. </p:cellEditor>
  8. </p:column>
  9. ...
  10. <p:column ...>
  11. <p:rowEditor />
  12. </p:column>
  13. ...
  14. </p:dataTable>

这是我目前为bean方法所做的:

  1. public void addNewCar() {
  2.  
  3. Car newCar = new Car();
  4. cars.add(newCar);
  5.  
  6. FacesContext facesContext = FacesContext.getCurrentInstance();
  7. UIComponent uiTable = ComponentUtils.findComponent(facesContext.getViewRoot(),"carTable");
  8. DataTable table = (DataTable) uiTable;
  9.  
  10. final AjaxBehavior behavior = new AjaxBehavior();
  11. RowEditEvent rowEditEvent = new RowEditEvent(uiTable,behavior,table.getRowData());
  12. rowEditEvent.setPhaseId(PhaseId.UPDATE_MODEL_VALUES);
  13. table.broadcast(rowEditEvent);
  14. }

我不知道

>如果这是正确的方法
>如果是,将哪个对象传递给构造函数RowEditEvent(UIComponent组件,行为行为,Object对象)作为第3个参数

解决方法

如果facelet中只有一个数据表,请尝试使用此表
  1. oncomplete="jQuery('.ui-datatable-data tr').last().find('span.ui-icon-pencil').each(function(){jQuery(this).click()});

将其添加到命令按钮.这应该工作.

猜你在找的HTML相关文章