Как передать дополнительные постданные в функцию добавления записи - JQGrid - MVC. СЕТЬ - PullRequest
4 голосов
/ 09 марта 2011

Я использую плагин JQGrid в проекте MVC. Я пытаюсь избежать использования «Сессии». Мне удалось передать дополнительные постданные в функции редактирования и удаления, используя методы serializedata из JQGrid.

Е.Г.

serializeEditData: function (postdata) 
{
    var rowdata = jQuery('#gridId').getRowData(postdata.id);
    return {id: postdata.id, oper: postdata.oper, SomeExtraData: $('#extradata').val()};
}

Однако здесь нет функции serializeAddData. Есть ли другой способ изменить данные публикации для метода add до его отправки?

1 Ответ

9 голосов
/ 10 марта 2011

Существует один метод editGridRow , который реализует редактирование формы для и диалогов «Редактировать» и «Добавить».Таким образом, одно и то же событие han`ler serializeEditData может использоваться в обоих случаях.Например,

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for edit
        }
    },
    {/*add options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for add
        }
    },
    {/*del options*/},
    {/*search options*/}

/);

Обычно serializeEditData событие очень практично, если вам необходимо преобразовать все опубликованные данные в другом формате, например всделать сериализацию JSON.Чтобы иметь возможность передавать дополнительные параметры постданных, вы можете использовать параметр editData, который имеет то же значение, что и параметр postData в jqGrid:

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*add options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*del options*/},
    {/*search options*/}
);

или лучше (см. этот ответ об использовании функций в качестве свойства postData):

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*add options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*del options*/},
    {/*search options*/}
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...