日期:2014-05-16  浏览次数:20369 次

ExtJs4 将Grid的状态保存到服务器端
Ext.define("Ext.state.DBProvider", {
    extend: "Ext.state.Provider",
    constructor: function() {
        var me = this;
        me.callParent(arguments);
        //将数据库中的状态信息读出来
        //数据内容为 var states = [
        //                          {stateId: 'st1', stateValue: 'o%3Acollapsed%3Db%253A0%5Ecol....'},
        //                          {stateId: 'st2', stateValue: 'o%3Acollapsed%3Db%253A0%5Ecol....'}
        //                        ];
        //将数据转换为state对象,通过循环处理
        //state['st1'] = this.decodeValue(stateValue);
        //state['st2'] = this.decodeValue(stateValue);
    },

    //@override
    get: function(name, value) {
         return this.callParent(arguments);
    },

    //每次grid的状态改变时都会调用次函数
    //name :stateId
    //value: 状态数据对象
    set: function(name, value) {
        //将value序列化
        var state = this.encodeValue(value);
        //将 name,value 存入数据库中
        // TODO
        this.callParent(arguments);
    }
});