简短版:是否可以在此订阅方法范围内访问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);
});
}
答案 0 :(得分:1)
grid.getData()实际上返回一个dataView对象
var dataView = args.grid.getData();