我有一个ExtJS编辑器网格,里面有一些列。我想修改记录上的数据并自动将数据保存到DB。但是在完成编辑当前行的所有单元格后,我只需要保存数据。我已经使用了事件“afteredit”,但它在一个单元格被更改后立即解雇了该事件。 在完成修改所有单元格之前,如何保持该事件不被触发?或者你能否建议另一种方法来做到这一点,而不是使用“afteredit”事件? 非常感谢你。
答案 0 :(得分:0)
我认为在您的情况下,单击按钮以保存网格会更容易。您可以通过调用grid.store.getModifiedRecords()
来访问所有已修改的记录,并将其发送到您的后端服务并进行批量更新,而不是一次更新一行。
答案 1 :(得分:0)
以下是我的问题:您是否连续编辑了所有单元格?更好的解决方案是使用“保存”按钮将更新的数据发送回服务器并将其保存到数据库中。
现在,如果您坚持要修改连续的所有单元格,则可以执行以下操作:
在afteredit
事件处理程序中:
event.record
)modified
。答案 2 :(得分:0)
您可以在选择模型上使用rowdeselect
事件(假设您使用Ext.grid.RowSelectionModel
。在事件处理程序中,您可以检查记录是否已被修改并做出相应的反应。
var grid = // your grid
grid.getSelectionModel().on("rowdeselect", function(selModel, rowIndex, record) {
if (record.dirty) {
// record has been modified
}
});
答案 3 :(得分:0)
您可以查看Ext.ux.grid.RowEditor
。它有一个afteredit
事件,在编辑完行时会触发该事件。
您可以在http://dev.sencha.com/deploy/dev/examples/grid/row-editor.html
找到工作示例答案 4 :(得分:0)
触发 edit 事件后,应检查 modified 配置,以检查是否所有网格列都已被修改。修改后,您可以将它们发送到后端。