【问题标题】:Extjs keep grid scroll position after store.saveExtjs 在 store.save 之后保持网格滚动位置
【发布时间】: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 注意我写的是“刷新行”,而不是完整的网格。

标签: gridview extjs scroll


【解决方案1】:

是的,调用记录的保存方法:

var record = grid.getStore().getAt(rowIndex);
record.set('status',6);
record.save();

网格中的数据也会更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多