Получить идентификатор сетки на CellEdit JqGrid - PullRequest
1 голос
/ 23 апреля 2010

я пытался выполнить редактирование ячейки на основе этой документации http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing

У меня два вопроса:

  1. Как я могу получить Индекс моей строки, опубликованный на сервере: Информация, которую я получаю, является следующей: а) значение ячейки б) RowId

Дело в том, что rowId мне не помогает. Мне нужен фактический идентификатор отображаемой информации, чтобы я мог выполнить обновление сервера с этим идентификатором.

colNames: ['Id', 'Codigo', 'Nombre'],

colModel: [ {имя: 'Id', индекс: 'Id', ширина: 50, выравнивание: 'влево', скрыто: true},

{name: 'Codigo', индекс: 'Codigo', ширина: 55, выравнивание: 'left', редактируемый: true, editrules: {число: правда}},

{name: 'Nombre', индекс: 'Nombre', ширина: 200, выравнивание: 'left'}],

Мне нужно значение столбца 'Id', чтобы сделать мое обновление.

2.Я не понимаю в документации, как управлять ошибкой с сервера, поэтому я могу отобразить сообщение об ошибке.

Большое спасибо!

Примечания:

а) Я уже спрашивал на форуме trirand, но никто мне не ответил.

б) Если бы кто-то сделал это, это помогло бы мне, если бы я вставил код.

в) Я работаю над MVC 2 Asp.net

Ответы [ 2 ]

0 голосов
/ 03 апреля 2017

1: Вы можете использовать Key: true, редактируемые: true, в colModel

{ key:true, name: 'Id', index: 'Id', width: 50, align: 'left', editable: true, hidden:true}

  Then in add/edit method ( add beforeShowForm method in add/edit method), you have to explicitly hide this field the field of id inside of beforeShowForm method
  $('#tr_Id').hide();

   i.e
         beforeShowForm: function (e) {
                   $('#tr_Id').hide();
                }

2:

  add 'afterSubmit' method in add/edit/delete method , i'm using Web api Server ,
  i.e  
      afterSubmit: function (response) {
            if (response.statusText == 'Created') {
                //   alert("Create Successfully")
                ShowMessage("Add Successfully", 'Success');
                //reload the grid
                $(this).jqGrid("setGridParam", { datatype: 'json' }); 
                return [true];
            }
            else {
                ShowMessage("Operation Failed", 'Error');
                return [false];
            }

        }, 

Надеюсь, это сработает для вас. Тем не менее вам нужна любая помощь, пожалуйста, прокомментируйте ниже

0 голосов
/ 25 апреля 2010

В основном это встроенное редактирование или редактирование формы, а не редактирование ячейки. Я рекомендую вам переключиться на одну из двух современных форм редактирования или вы

  1. Информация RowId уже является значением столбца Id. getInd(rowid,false) метод возвращает индекс строки в таблице сетки, указанной id = rowid.
  2. Чтобы иметь возможность отображать сообщения об ошибках с сервера, вам необходимо знать формат данных, возвращаемых с сервера в случае ошибки. Если ошибка, возвращаемая с сервера, имеет, например, формат JSON {"Detail":"error text"} (ошибки из службы WFC), вы можете определить параметр loadError в jqGrid, например:

    loadError: function (xhr, st, err) {alert (errorTextFormat (xhr)); }

где функция errorTextFormat, которая декодирует сообщение об ошибке и может выглядеть как

var errorTextFormat = function (data) {
    var str = data.responseText.substr(0, 10);
    if (str === '{"Detail":') {
        var errorDetail = jQuery.parseJSON(data.responseText);
        var s = "Error: '";
        s += data.statusText;
        s += "'. Details: ";
        s += errorDetail.Detail;
        return s;
    } else {
        var res = "Status: '";
        res += data.statusText;
        res += "'. Error code: ";
        res += data.status;
        return res;
    }
};

Та же функция, которую вы можете использовать для декодирования ошибок редактирования строк (по крайней мере, встроенного редактирования или редактирования формы). ASP.NET MVC возвращает в основном сообщения в формате HTML, поэтому ваша функция декодирования ошибок должна быть другой. Я не использую редактирование ячеек, как большинство других людей, поэтому не могу помочь вам в случае или настройке сообщений об ошибках при редактировании ячеек.

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