2011-10-14 84 views
0

我有一個方法,我想成爲網格中的回調對象。我該怎麼做?作爲jqGrid回調的對象方法

非工作示例代碼:

var GridHolder = function() { 
    //... 
    this.lastSel = null; 
    //... 
}; 
GridHolder.prototype = { 
    //... 
    someAction : function(id){ /*doSomeWork();*/}, 
    rowSelect : function(id){ 
     this.someAction(id); // failed 
     if(id && id !== this.lastSel){ 
      jQuery('#grid_id').restoreRow(this.lastSel); 
      this.lastSel=id; 
     } 
     jQuery('#grid_id').editRow(id, true); 
    } 
    //... 
}; 
var gridHolder = new GridHolder(); 
jQuery('#grid_id').jqGrid({ 
    //... 
    onSelectRow: gridHolder.rowSelect, 
    //... 
}); 

現在的回調是由jqGrid的調用「呼叫」,這是在方法替代「這個」。

即:

if($t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id , stat); } // this === $t in callback instead of gridHolder 

回答

0
var gridHolder = new GridHolder(); 
jQuery('#grid_id').jqGrid({ 
    //... 
    onSelectRow: function(id) { gridHolder.rowSelect(id); }, 
    //... 
}); 

應該在正確的上下文中執行。

相關問題