Jsf primefaces数据表:行编辑不工作
我正在尝试编辑primfaces数据表中的行数据,但不起作用 我在下面的链接中尝试相同的primefaces代码 我的jsf页面Jsf primefaces数据表:行编辑不工作,jsf,jsf-2,primefaces,datatable,Jsf,Jsf 2,Primefaces,Datatable,我正在尝试编辑primfaces数据表中的行数据,但不起作用 我在下面的链接中尝试相同的primefaces代码 我的jsf页面 <h:form id="form"> <p:dataTable id="depTable" value="#{departmentBean.departments}" var="dep" editable="true"> <f:facet name="header">
<h:form id="form">
<p:dataTable id="depTable" value="#{departmentBean.departments}"
var="dep" editable="true">
<f:facet name="header">
All departments
</f:facet>
<p:ajax event="rowEdit" listener="#{departmentBean.onRowEdit}"
update=":form:depTable" />
<p:ajax event="rowEditCancel"
listener="#{departmentBean.onRowCancel}" update=":form:depTable" />
<p:column headerText="Id">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{dep.id}" />
</f:facet>
<f:facet name="input">
<p:inputText id="modelInput" value="#{dep.id}" style="width:100%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Name">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{dep.name}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{dep.name}" style="width:100%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column style="width:32px">
<p:rowEditor />
</p:column>
</p:dataTable>
</h:form>
在我的例子中,我使用的是primfaces 4.0,问题是我的支持bean是@SessionScope(在PF示例中是@ViewScope),所以我需要修改dataTabe值:
<p:dataTable id="settingsTbl" value="#{settingsBean.settingsList}" var="item" editable="true">
public List getSettingsList(){
如果(设置列表==null){
settingsList=settingsFacade.findAll();
}
返回设置列表;
}
我遇到了这个问题,我的解决方法是将数据表放在表单中。
冲脏
添加行
脏行:{{dirtyRows.length}
{{row.entity.id},{{row.entity.gender}
你说的“不工作”是什么意思?它是如何工作的?不使用行的新值更新表。它将旧值保存到行中。感谢您的帮助。问题是“editable”设置为“false”,请对您的解决方案添加一些注释,这对其他人会有帮助。
<p:dataTable id="settingsTbl" value="#{settingsBean.settingsList}" var="item" editable="true">
public List<Settings> getSettingsList() {
if(settingsList==null){
settingsList = settingsFacade.findAll();
}
return settingsList;
}
<div ng-controller="MainCtrl">
<div ui-grid="gridOptions" ui-grid-edit ui-grid-row-edit ui-grid-cellNav class="grid">
</div>
<button id='flushDirty' ng-click='flushDirty()'>Flush Dirty</button>
<button id='addRow' ng-click='addRow()'>Add Row</button>
<br/>
<p>Dirty rows: {{dirtyRows.length}}</p>
<div ng-repeat="row in dirtyRows">
{{row.entity.id}}, {{row.entity.gender}}
</div>
</div>