我試圖擴展jqGrid「navgrid」方法爲所有我的表格網格添加自定義功能(即添加「navButtonAdd」或「filterToolbar」)。我有大約100頁,所有工作良好的jqGrid v4.6.0,都具有相同的結構,並已使用「navGrid」方法,並且不想在每個頁面中寫入「navButtonAdd」或「filterToolbar」。 左右(根據奧列格在對方的回答例子),我第一次嘗試這樣的:覆蓋擴展jqGrid Navgrid方法
/* this is my global.js file, which is included for every page, of course AFTER jquery.jqGrid.src.js */
var oldNavGrid = $.fn.jqGrid.navGrid;
$.jgrid.extend({
navGrid: function() {
var ret = oldNavGrid.call(arguments);
//... do something else, such navButtonAdd or filterToolbar...
return ret;
}
});
//...
/* this is the structure of every page */
var $myGrid = $("#$myGrid");
$myGrid.jqGrid({
//grid options...
})
$myGrid.jqGrid('navGrid', "#myPager",
{edit:false, add:true, del:true, search:true, refresh:true}, {}, {}, {}, {})
,但是當我打電話「navGrid」我得到這個錯誤「遺漏的類型錯誤:未定義是不是一個函數」,指向jQuery的。 jqGrid.src.js:8911
然後我試圖覆蓋不同的方式,比如
var oldNavGrid = $.fn.jqGrid.navGrid;
$.fn.jqGrid.navGrid = function() {
var ret = oldNavGrid.call(arguments);
//... do something else...
return ret;
};
總是得到同樣的錯誤。 有人能告訴我一個我想要做的解決方案嗎? 謝謝!
謝謝!! oldNavGrid.apply(this,arguments)工作正常! 您是否認爲此解決方案是將其他默認功能應用於所有網格的最佳方式? – Aberel
@Aberel:不客氣! 「所有網格的默認功能」下的含義是什麼?如果您的問題現在得到解決,您應該[「接受」](http://meta.stackexchange.com/a/5235)答案。 – Oleg