如何在加载之前检查所有数据加载将新行添加到网格中(ExtJS 3.2)
Posted
技术标签:
【中文标题】如何在加载之前检查所有数据加载将新行添加到网格中(ExtJS 3.2)【英文标题】:How to check all data load befere load add new row in to the grid(ExtJS 3.2) 【发布时间】:2012-12-24 08:19:43 【问题描述】:我有一个可编辑的网格,我想自动加载 roweditor 并在该列中设置一些值。所以我写了一个函数调用 RowAdd()
RowAdd = function()
var grid = this.gridPtnr;
var ds = grid.getStore();
var roweditor = Ext.getCmp(grid.getId() + "_roweditor");
var dt = new Date();
var rec = new ds.recordType( , "new" + dt.format('U'));
rec.set('USER_ID', '<?php echo $user_id; ?>');
rec.set('COUNTRY_ID', '<?php echo $county_id; ?>');
ds.insert(0, rec);
grid.getView().refresh();
grid.getSelectionModel().selectRow(0);
roweditor.startEditing(0);
这个方法给了我一些错误,因为当我尝试向网格中添加新行时没有加载网格数据。但我在ds.insert(0, rec);
正常工作的行之前添加了延迟时间。延迟对我来说不是不依赖客户端 PC 的完美解决方案。任何人都知道如何在网格数据完全加载后添加行,请帮助我。
【问题讨论】:
当我在ds.insert(0, rec);
行之前添加警报时正常工作
【参考方案1】:
您可以使用 new store.recordType
来创建 Store 中保存的类型的新记录,并使用 store.insert
方法添加新创建的记录。下面是一段代码sn-p
var recordData =
colum1: 0,
colum2: 'string data',
colum3: 0
;
var recId = 3; // provide unique id
var p = new store.recordType(recordData, recId); // create new record
grid.stopEditing();
store.insert(0, p); // insert a new record into the store (also see add)
grid.startEditing(0, 0);
【讨论】:
【参考方案2】:问题是当我尝试插入记录时商店没有数据所以我可以在商店完全加载后插入数据
RowAdd = function()
var grid = this.gridPtnr;
var ds = grid.getStore();
var roweditor = Ext.getCmp(grid.getId() + "_roweditor");
var dt = new Date();
var rec = new ds.recordType( , "new" + dt.format('U'));
rec.set('USER_ID', '<?php echo $user_id; ?>');
rec.set('COUNTRY_ID', '<?php echo $county_id; ?>');
ds.load(
callback : function(r, options, success)
ds.insert(0, rec);
grid.getView().refresh();
grid.getSelectionModel().selectRow(0);
roweditor.startEditing(0);
);
【讨论】:
以上是关于如何在加载之前检查所有数据加载将新行添加到网格中(ExtJS 3.2)的主要内容,如果未能解决你的问题,请参考以下文章