jqGrid - редактировать данные - PullRequest
1 голос
/ 26 ноября 2010

Я новичок в jquery и jqgrid. Я использую ASP.NET WebForms. Я могу получить некоторые данные сервера выпускного вечера и показать его в сетке. Я использую PageMethods для получения данных с сервера. Обычно мой код

function CreateGrid(){
    $("#sestGrid").jqGrid({
        datatype: GetData,
        //toolbar: [true, "top"],
        colNames: ['Name', 'Age'],
        colModel: [
            { name: 'Name', index: 'Name', width: 170, align: 'left',
              sortable: false, key: true },
            { name: 'Age', index: 'Age', width: 40, align: 'center',
              sortable: false, editable: true },
        ],
        ondblClickRow: function () {
            var row_id = $("#sestGrid").getGridParam('selrow');
            $('#sestGrid').editRow(row_id, true);
        }
    });
}

function GetData() {
    PageMethods.GetSestevalniStevecData(GotData);
}

function GotData (data) {
    $("#sestGrid").clearGridData(false);
    for (var j = 0; j <= data.length; j++)
        $("#sestGrid").jqGrid('addRowData', j + 1, data[j]);
}

Итак, теперь я хотел бы отредактировать некоторые данные и опубликовать их на сервере. Как я могу сделать это, используя PageMethods? Должен ли я использовать любой другой подход?

И еще одна вещь. Я проверил демонстрации http://trirand.com/blog/jqgrid/jqgrid.html и во всех примерах редактирования вы можете редактировать только одну строку, а затем сохранять изменения ... Можно ли редактировать более одной строки и сохранять все изменения за один шаг? *

Спасибо всем.

Ответы [ 2 ]

1 голос
/ 27 ноября 2010

jqGrid предназначен для использования вместе с сервисами ajax.Поэтому, если пользователь изменит данные какой-либо строки, изменения будут отправлены на сервер: по URL-адресу, который вы настраиваете с помощью параметра jqGrid editurl.Таким образом, самый простой способ реализовать редактирование строк - это включить веб-сервис ASMX или сервис WCF на ваш веб-сайт.Неважно, используете ли вы ASP.NET WebForms, ASP.NET MVC или просто чистый HTML для своих страниц.Поэтому просто выберите технологию, которую вы предпочитаете, и добавьте соответствующую страницу на ваш сайт.

У ASMX или WCF должен быть метод с подписью, такой как

public string MyDataEdit (string Age, string oper, string id)

(см. старый ответ для получения дополнительной информации).Метод должен возвращать идентификатор нового добавленного элемента (Name в вашем случае) в случае операции добавления.

Еще одно небольшое замечание.Вы можете изменить определение функции ondblClickRow с function() на function(row_id) и удалить используемую строку getGridParam('selrow').

0 голосов
/ 19 июля 2011

Я использовал ваш пример и немного его изменил:

ondblClickRow: function (rowid) {
if (rowid && rowid != lastsel) {
    changedRows.push(rowid); //keep row id
    jQuery('#jqgrid').editRow(rowid, true);
}
}

Под событием нажатия кнопки сохранения:

$.each(changedRows, function () {
    var row = $("#jqgrid").getRowData(this);
    var Id = row['ID'];
    var price = $(row['Price']).val(); //this is an input type
});

HTH кто-то:)

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