jqgrid editurl: параметры действия контроллера - PullRequest
4 голосов
/ 02 ноября 2010

Когда я использую свойство editurl в моем jqgrid, действие контроллера вызывается после того, как я нажимаю кнопку отправки при добавлении новой строки.Но как мне получить все строки сетки там?Какой параметр мне следует прочитать из метода действия моего контроллера, чтобы получить данные сетки?

Код сетки:

$("#list1").jqGrid({
            url: '/CMS/GetCustomLanguageData',
---
---                
editurl: '/CMS/SaveCustomLanguageData'
---

Добавить новый код строки:

grid.jqGrid('editGridRow',"new",{height:280,reloadAfterSubmit:false,addCaption: "Add Record",
    editCaption: "Edit Record",
    bSubmit: "Submit",
    bCancel: "Cancel",
    bClose: "Close",
    saveData: "Data has been changed! Save changes?",
    bYes : "Yes",
    bNo : "No"
});

Код контроллера:

public ActionResult SaveCustomLanguageData()
{
}

1 Ответ

4 голосов
/ 02 ноября 2010

jqGrid отправляет на контроллер именованные параметры с именем, которое вы определили в свойстве name в colModel.Дополнительно будут отправлены oper=add и id=_empty.Таким образом, действие вашего контроллера может выглядеть следующим образом

public JsonResult SaveCustomLanguageData (string id, string oper, MyObject item)
{
    // test id for "_empty" or oper for "add".
    // If so add the item and return the value of the new id
    // for example return Json ("123");
}

на стороне клиента, вам следует декодировать ответ JSON, например, с помощью следующего кода

jQuery.extend(jQuery.jgrid.edit, {
    afterSubmit: function (response, postdata) {
        return [true, "", jQuery.parseJSON(response.responseText)];
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...