2015-06-19 6 views
0

Краткая версия: Возможно ли получить доступ к dataView в рамках этого метода подписки?Slickgrid onClick ... Как обновить dataView без глобального 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(); 
}); 

Long Version: Я создал универсальный модуль JavaScript для Slickgrid в моем приложении для повторного использования. Он принимает 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

grid.getData() фактически возвращает объект DataView

var dataView = args.grid.getData(); 
+0

большое спасибо. – Kirby