我有一個primefaces p:dataTable
與InCell editing enabled,並希望觸發/激活RowEditor新添加的行。觸發/激活RowEditor從一個黃素啓用單元格編輯啓用p:dataTable
XHTML
<p:commandButton id="btnAddEntry" value="Add new row" actionListener="#{myBean.addNewCar}" ... update="carTable growl" process="@this carTable ..."/>
<p:dataTable id="carTable" var="car" value="#{myBean.cars}" ... editable="true">
<p:column ...>
<p:cellEditor>
...
</p:cellEditor>
</p:column>
...
<p:column ...>
<p:rowEditor />
</p:column>
...
</p:dataTable>
下面的摘錄是我迄今爲止的bean的方法:
public void addNewCar() {
Car newCar = new Car();
cars.add(newCar);
FacesContext facesContext = FacesContext.getCurrentInstance();
UIComponent uiTable = ComponentUtils.findComponent(facesContext.getViewRoot(), "carTable");
DataTable table = (DataTable) uiTable;
final AjaxBehavior behavior = new AjaxBehavior();
RowEditEvent rowEditEvent = new RowEditEvent(uiTable, behavior, table.getRowData());
rowEditEvent.setPhaseId(PhaseId.UPDATE_MODEL_VALUES);
table.broadcast(rowEditEvent);
}
我不知道
- 如果這是正確的方法
- 的情況是,哪個對象傳遞給構造
RowEditEvent(UIComponent component, Behavior behavior, Object object)
作爲第三個參數
作品!不錯:-)沒有想過jQuery – jimmybondy
jQuery是primefaces團隊用來實現他的框架,是一個非常強大的工具=) – Gnappuraz