Я не вижу проблем в использовании $("#thegrid").trigger("reloadGrid")
вне jqGrid. Вероятно, проблема связана с onComplete
от ajaxupload
и $("#thegrid")
вообще.
Например, вы можете определить внешнюю кнопку на той же странице, что и jqGrid, с элементом <table>
, имеющим id = "thegrid", и использовать
$("#button").click(function() {
if ($("#thegrid").length === 0) {
alert("no element with id='thegrid' is found");
}
if ($.isFunction($("#thegrid").jqGrid) !== true) {
alert("$('#thegrid') is not jqGrid");
}
var e = $("#thegrid").data("events");
if (typeof(e) !== "undefined" && typeof(e.reloadGrid) !== "undefined") {
$("#thegrid").trigger("reloadGrid");
} else {
alert("$('#thegrid') is not bound to 'reloadGrid' function");
}
}
Вы увидите, что код работает без каких-либо предупреждений. Вы можете включить этот же код в обработчик onComplete
вашего ajaxupload.
Чтобы убедиться, что функция reloadGrid работает, вы можете использовать loadComplete :
loadComplete: function() {
alert("grid is loaded/reloaded");
}
ОБНОВЛЕНО : Начиная с jQuery 1.8 следует использовать $._data($("#thegrid")[0], "events");
вместо $("#thegrid").data("events")
, чтобы получить список всех событий сетки.