После публикации ссылки http://ccclients.com/TEST/TEST.php я понимаю, какую ошибку вы совершаете. Вы не должны разделять определение jqGrid в двух вызовах:
jQuery("#list").jqGrid({
datatype: 'xml',
mtype: 'GET',
loadonce: true,
// other parameters
caption: 'My first grid',
xmlReader: {
root: "export",
row: "row",
repeatitems: false
}
});
и
$("#list").jqGrid({loadComplete:
function() {
alert('load complete')
}
});
но определите loadComplete
как часть один вызов $("#list").jqGrid({ ... });
, как показано ниже:
jQuery("#list").jqGrid({
datatype: 'xml',
mtype: 'GET',
loadonce: true,
// other parameters
caption: 'My first grid',
xmlReader: {
root: "export",
row: "row",
repeatitems: false
},
loadComplete: function(data) {
alert('load complete');
}
});
Если вам необходимо установить обработчик событий позже, вы должны использовать метод setGridParam
(см. Добавление обработчика событий в jqGrid после создания экземпляра )
Более того, я категорически не согласен с ответом Грокса. Функция loadComplete
будет вызываться для всех типов данных (включая «xml», «json», «local» и т. Д.). Как вы можете видеть в документации под http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events#execution_order, функция loadComplete
является идеальным местом для внесения некоторых изменений в сетку после того, как данные загружены (или обновлены). Я использую эту функцию постоянно. Использование типа данных функции является последним способом, если вам нужно загрузить очень экзотические данные (ни xml, ни json и т. Д.). Для загрузки данных xml и json в jqGrid имеется множество функций настройки (см., Например, Настройка типа содержимого запросов, выполняемых jQuery jqGrid ). Таким образом, вы можете настроить вызов jQurey.ajax
и преобразовать данные, используемые для ввода и вывода, в jQurey.ajax
практически так, как вам нужно.