目前该rowediting插件提供了选项update/cancel.当我按下cancel按钮时,如果它是新添加的行,我希望它不添加新行.
我怎样才能做到这一点?
这是FIDDLE.
目前,有了rowediting,我只是添加和删除行.如果无法使用cancel,如何添加新按钮close并使其不添加行.
我也在查看sencha论坛,我找到了一个POST,其中说明如下:
fireEvent canceledit
如果autoRecoverOnCancel是真的,如果记录是幻影然后删除它
但是,这也行不通.你能建议吗?
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
clicksToMoveEditor: 1,
autoCancel: false,
});
tbar: [{
text: 'Add Employee',
iconCls: 'employee-add',
handler: function() {
rowEditing.cancelEdit();
// Create a model instance
var r = Ext.create('Employee', {
name: 'New Guy',
email: 'new@sencha-test.com',
start: new Date(),
salary: 50000,
active: true
});
store.insert(0, r);
rowEditing.startEdit(0, 0);
}
}, {
itemId: 'removeEmployee', …Run Code Online (Sandbox Code Playgroud) 我正在使用<p:dataTable>行编辑器编辑数据,如下所示.
<p:dataTable value="#{bean.users}" var="user" editable="true">
<p:ajax event="rowEdit" listener="#{bean.onRowEdit}" />
<p:ajax event="rowEditCancel" listener="#{bean.onRowEditCancel}" />
<p:column>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{user.firstName}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{user.firstName}" />
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
支持bean的实现如下.
private List<User> users;
@EJB
private UserService userService;
public List<User> getUsers() {
users = userService.list();
return users;
}
Run Code Online (Sandbox Code Playgroud)
当我在cellEditor中输入新数据并提交它时,它们在侦听器方法中不可用.我注意到它们被数据库调用的数据覆盖了.
为什么会发生这种情况,我该如何避免呢?
roweditor ×2
datatable ×1
extjs ×1
extjs-grid ×1
extjs4.2 ×1
getter ×1
javascript ×1
jsf ×1
primefaces ×1