我們使用沒有分頁的dojo並一次顯示所有記錄。當整個網格完全渲染時,我們需要調用java腳本方法,以便網格行和單元格可以用於DOM操作。如何在dojo dgrid完全呈現時調用事件?
我想下面的代碼,但它不工作。
aspect.after(grid,"dgrid-refresh-complete",function(){
});
grid.on("dgrid-refresh-complete", function(event){
});
我們使用沒有分頁的dojo並一次顯示所有記錄。當整個網格完全渲染時,我們需要調用java腳本方法,以便網格行和單元格可以用於DOM操作。如何在dojo dgrid完全呈現時調用事件?
我想下面的代碼,但它不工作。
aspect.after(grid,"dgrid-refresh-complete",function(){
});
grid.on("dgrid-refresh-complete", function(event){
});
dgrid-refresh-complete
在OnDemandList
和Pagination
具體實現。如果你使用SingleQuery
混入代替(如教程0.3或0.4),應該提起的同類事件的可行如下:
var self = this;
// existing code from refresh...
// when(...) (via dojo/when) should only be necessary here for dgrid 0.3
var promise = when(this._trackError(/* existing code from refresh */));
promise.then(function() {
on.emit(self.domNode, 'dgrid-refresh-complete', {
bubbles: true,
cancelable: false,
grid: self
});
});
return promise;
因此,例如,在0.3,SingleQuery的refresh
方法是這樣的:
refresh: function() {
var self = this;
// First defer to List#refresh to clear the grid's
// previous content
this.inherited(arguments);
if (!this.store) {
return;
}
var promise = when(this._trackError(function() {
var queryOptions = self.get('queryOptions'),
results = self.store.query(
self.query, queryOptions);
return self.renderArray(
results, null, queryOptions);
}));
promise.then(function() {
on.emit(self.domNode, 'dgrid-refresh-complete', {
bubbles: true,
cancelable: false,
grid: self
});
});
return promise;
}
我試過這個。但它不起作用。 – yetanothercoder
對於dgrid 0.3,您可能需要使用dojo/when來包裝'_trackError'調用,因爲它在使用dstore 0.4之前並不總是返回承諾。我會更新這個例子。 –
我正在使用dgrid 0.3。 dgrid 0.3的確切代碼是什麼? – yetanothercoder
這是在SingleQuery混入像http://stackoverflow.com/questions/30701456/how-to-show-all-records-at-once-in上下文-dojo-dgrid? –
是的。它相同的mixin – yetanothercoder