【发布时间】:2012-12-19 21:16:57
【问题描述】:
我在grid.Panel 中有一个操作列,它更改字段值并保存存储数据。但是每次调用store.save 时,网格滚动位置都会回到top:0。
示例代码:
Ext.define('SF.view.Myview.List' , {
extend: 'Ext.grid.Panel',
viewConfig: {
preserveScrollOnRefresh: true,
},
store: 'Contents',
initComponent: function() {
this.columns = [
{ xtype: 'actioncolumn',
header: 'Action'
, width: 60
, items: [{ // change status button
icon: 'http://whatisextjs.com/BAHO/icons/cancel.png'
, handler: function(grid, rowIndex, colindex) {
var record = grid.getStore().getAt(rowIndex);
record.set('status',6);
grid.store.save();
}
},
我尝试了 preserveScrollOnRefresh 属性但没有成功。此属性适用于分页和工具栏按钮,但不适用于 store.refresh/load 事件。
是否可以在不丢失滚动位置的情况下保存数据并刷新行?
【问题讨论】:
-
取另一个变量并将存储数据分配给网格之前的那个
-
有趣的原因正是那个开关的用途——刷新
-
@dbrin 注意我写的是“刷新行”,而不是完整的网格。