JqGrid обновление сетки при добавлении - PullRequest
0 голосов
/ 04 февраля 2010

Сценарий

У меня в сетке три столбца, но редактируется только один, два других заполнены на стороне сервера. Я использую встроенную функциональность добавления jqGrid и НЕ обновляю сетку при успешном добавлении. Я хотел бы добавить строку в сетку, как это происходит автоматически, но хотел бы добавить ее сам, потому что она добавляет только один столбец, помеченный как «редактируемый». Я не могу найти способ заблокировать автоматическое добавление строки в сетку или способ переопределить встроенную функцию добавления в сетке. Моя идея состояла в том, чтобы добавить строку самостоятельно, потому что я получу полный ряд данных обратно в моем представлении.

Вопросы

  1. Есть ли способ остановить автоматическое добавление строки в сетку, если я не хочу обновления сетки, чтобы я мог вручную добавить все данные для строки?

  2. Можно ли использовать встроенную кнопку добавления и переопределить onClick, не копая и не выясняя, что именно jqGrid вызывает для кнопки?

  3. Любые лучшие идеи о том, как выполнить добавление строки в сетку со стороны сервера, не делая все это вручную ... т.е. создать мою собственную кнопку добавления, всплывающее диалоговое окно и обработать все функции отправки?

EDIT

Что могло бы помочь, если бы я мог остановить автоматическое добавление строки в сетку ... Я могу справиться с этим самостоятельно.

Ответы [ 2 ]

0 голосов
/ 17 марта 2010

Не совсем тот ответ, который вам нужен, но я решил просто связать событие onClick с кнопкой и добавить строку таким образом.

var dummyRow;  // you can trick the addRowData method into simply adding a row without 
               // index by passing an undefined value.

jQuery('#addRow').click( function () {
    jQuery('#grid').jqGrid('addRowData', dummyRow, {"name":"New Name","val":"","other":"No"});
});

Мне не терпится узнать, есть ли у кого-то другой вариант, потому что нелепо требовать, чтобы метод Add Row в Navigator использовался исключительно для вызовов ajax.

0 голосов
/ 04 февраля 2010

Вот одно из решений. Используйте событие afterComplete , описанное здесь .

afterComplete : function (response, postdata, formid) {…}

В этом случае вы получаете данные response с сервера. Поскольку строка уже обновлена ​​/ вставлена, вы можете использовать данные response для обновления дополнительных ячеек строки. Вероятно, вы можете получить идентификатор строки из postdata , если нет, используйте событие afterSubmit - это позволит вам сообщить jqGrid, каков новый идентификатор строки (еще раз из ответа сервера), и, таким образом, вы будете знать значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...