Ответ 1
Я думаю, что этот вопрос задают многие пользователи jqGrid. Поэтому интересно узнать ответ.
Я лично предпочитаю использовать loadComplete
. Если вы изучите код из всех моих примеров, которые я опубликовал, вы найдете gridComplete
только в том случае, если исходный плакат разместил его в вопросе, и я бы модифицировал небольшой код. Я предпочитаю использовать loadComplete
из-за некоторых преимуществ loadComplete
и недостатков gridComplete
.
Вот преимущества loadComplete
:
- Это последний обратный вызов, который будет вызываться, если весь корпус сетки будет перезагружен. Например, после загрузки страницы на сетке с сервера. Важно понимать, что если пользователь изменяет сортировку какого-либо столбца или устанавливает фильтр или выбирает другую страницу сетки; тело сетки будет перезагружено.
-
loadComplete
имеет параметрdata
, который представляет полную страницу локальных данных или полные данные, загруженные с сервера.
С другой стороны gridComplete
будет вызываться (в текущей версии jqGrid 4.4.4) из внутреннего updatepager
(см. здесь), который будет вызываться из delRowData
(см. здесь), addRowData
(см. здесь) и clearGridData
(см. здесь); в дополнение до addXmlData
(см. здесь) и addJSONData
(см. здесь). Это не то, что больше всего нужно.
Другим недостатком gridComplete
можно узнать, проверяет ли код addXmlData
(см. здесь) и addJSONData
(см. здесь), откуда вызывается updatepager
и поэтому будет вызываться gridComplete
. Если вы используете loadonce: true
, а внутренние параметры data
и _index
будут заполнены полными данными, возвращаемыми с сервера. При использовании loadonce: true
можно увидеть; обратный вызов gridComplete
вызывается после того, как первая страница данных будет загружена из раздела. В настоящий момент data
и _index
содержат только данные для страницы. С другой стороны loadComplete
будет вызываться позже после того, как все данные, возвращенные с сервера, будут обработаны и сохранены локально в data
и _index
.
Если вы загружаете данные с сервера, и если вы не используете опцию loadonce: true
, clearGridData
, addRowData
и delRowData
, тогда вы можете использовать gridComplete
вместо loadComplete
.