2010-04-23 2 views
1

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

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

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

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

COLNAMES: [ 'Id', 'Codigo', 'Номбр'],

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

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

{name: 'Nombre', index: 'Nombre', width: 200, align: 'left'}],

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

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

спасибо!

Примечание:

а) Я уже задавал в форуме trirand, но не один ответа он мне.

b) Если кто-то это сделал, это поможет, если поможет мне вставить код.

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

ответ

0

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

  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, поэтому ваша функция декодирования ошибок должна быть другой. Я не использую редактирование ячеек, как это делают большинство других людей, поэтому не может помочь вам в случае или настроить сообщения об ошибках в редактировании ячеек.

+0

Спасибо, Олег, я попробую встроенное редактирование. Я просто интересовался редактированием ячеек, потому что мне нужна только эта ячейка для редактирования. Но на мой вопрос не ответили. Как я могу отправить «Id» на сервер? – Sanchitos

+0

Только что нашел, что вы спросили меня один раз. Вероятно, теперь ваша проблема решена. Вероятно, вы обнаружили, что данные, которые будут отправляться после изменения, например, столбец «Nombre» выглядит как «Nombre = NewData & id = 2 & oper = edit», поэтому проблема с идентификацией столбца, который вы просите, не существует. У вас есть как rowId, так и имя столбца (это то же самое, что и столбец «Id»). – Oleg

0

Q1: вы можете использовать ключ: правда, редактируемые: правда, в 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(); 
       } 

Q2:

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]; 
      } 

     }, 

Я надеюсь, что это будет работать для вас. Все равно u Need Любая помощь, пожалуйста, прокомментируйте ниже

Смежные вопросы