Slickgrid onClick ...如何在没有全局dataView的情况下更新dataView?

时间:2015-06-19 12:45:51

标签: javascript module slickgrid

简短版:是否可以在此订阅方法范围内访问dataView?

grid.onClick.subscribe(function(e, args) {
    var rowData= args.grid.getDataItem(args.row);

    //want to update data in dataView for this row

});

(在我的模块的其他地方)

dataView.onRowsChanged.subscribe(function(e, args){
    grid.invalidateRows(args.rows);
    grid.render();
});

长版本:我已在应用程序中为Slickgrid创建了一个通用的JavaScript模块,以供重用。它需要一个columnCollection,dataCollection,filterArgs,filterMethods,现在我在一个场景中,在一个onClick中有一些业务逻辑,从组织的角度来看,我不想在我的通用模块中。如果我将clickMethod传递给我的模块,我将如何在点击时更新dataView。 (我希望这是有道理的。)

模块就像......

var options = _.extend(DEFAULT_OPTIONS, params.options);
var dataView = new Slick.Data.DataView({inlineFilters:true});
var grid = new Slick.Grid('#grid', dataView, params.columnsObj, options);

if(options.myClickMethod !== undefined){
    grid.onClick.subscribe(function(e,args){
        options.myClickMethod(e,args);
    });
}

1 个答案:

答案 0 :(得分:1)

grid.getData()实际上返回一个dataView对象

var dataView = args.grid.getData();