2015-05-19 3 views
0

Это моя первая настройка jqGrid, поэтому я реализовал базовую сетку, но у меня довольно сложное время, проходящее через контроллер __RequestVerificationToken.JQGrid способен передавать ValidateAntiForgeryToken через основные элементы управления CRUD?

$("#RawMatGrid").jqGrid({ 
 
     url: "/RawMat/GetRawMats", 
 
     datatype: 'JSON', 
 
     mtype: 'GET', 
 
     colNames: [ 
 
      'Item', 
 
      'Product', 
 
      'Description' 
 
     ], 
 
     colModel: [ 
 
      { name: 'Item', key: true, index: 'Item', sortable: true, editable: true }, 
 
      { name: 'Product', key: true, index: 'Product', sortable: true, editable: true }, 
 
      { name: 'Description', key: true, index: 'Description', sortable: true, editable: true } 
 
     ], 
 
     pager: "#paging", 
 
     rowNum: 10, 
 
     rowList: [10, 20, 30, 40, 50], 
 
     width: 780, 
 
     height: 500, 
 
     viewrecords: true, 
 
     caption: 'Raw Mats', 
 
     emptyrecords: 'No records to display', 
 
     autowidth: true, 
 
     multiselect: false, 
 
     jsonReader: { 
 
      root: "rows", 
 
      page: "page", 
 
      total: "total", 
 
      records: "records", 
 
      repeateditems: false, 
 
      Id: "0" 
 
      } 
 
    }).navGrid(
 
     "#paging", { 
 
      edit: true, 
 
      add: true, 
 
      del: false, 
 
      search: true, 
 
      refresh: true 
 
     }, 
 
     { }, 
 
     { //Add 
 
      zIndex: 100, 
 
      url: '/RawMat/Create', 
 
      mtype: 'POST', 
 
      // This did not work 
 
      editData: { __RequestVerificationToken: jQuery('input[name=__RequestVerificationToken]').val() }, 
 
      processData: "Processing...", 
 
      width: 400, 
 
      closeOnEscape: true, 
 
      closeAfterEdit: true 
 
     }, 
 
     {});

После попытки использовать поле editData и неудачу ужасно, я пришел, чтобы спросить экспертов.

Я увидел пример того, что кто-то может передать токен через extraparams внутри своей встроенной строки, но navGrid Add не позволяет лишние параметры из того, что я читал на сайте документации. У кого-нибудь есть опыт, проходящий через элементы управления CRUD главной сетки? Любая помощь, безусловно, ценится!

ответ

1

Совершенно неправильно использовать key: true для более одного столбца. Он разбивает ряды. Значения id строк должны иметь уникальное значение по странице HTML. Я рекомендую вам проверить, действительно ли jsonReader, который вы используете, соответствует входным данным, которые вы используете. Он выглядит подозрительным. Если вы включаете 1-2 строки входных данных, я могу помочь вам исправить jsonReader.

Для отправки __RequestVerificationToken вы должны определить его как функцию:

editData: { __RequestVerificationToken: function() { 
    return $("input[name=__RequestVerificationToken]").val(); 
} 

В качестве альтернативы вы можете использовать onclickSubmit дозвона редактирования формы для расширения данных: просто замените editData на

onclickSubmit: function (options, postdata, frmoper) { 
    return { 
     __RequestVerificationToken: $("input[name=__RequestVerificationToken]").val(); 
    } 
} 

I включены неиспользуемые параметры из onclickSubmit callback только для того, чтобы показать, что onclickSubmit позволяет анализировать данные, которые будут отправляться на сервер во время редактирования и генерировать возвращенные данные на основе данных.

+0

Фантастический! Большое спасибо! Я не уверен, что вы имеете в виду, если я включу 1-2 строки входных данных? Не могли бы вы уточнить, пожалуйста? – Dia

+0

@ Dia: Добро пожаловать! Вы публикуете код, который считывает данные из '/ RawMat/GetRawMats''. Существует много способов форматирования данных. 'JsonReader' должен соответствовать формату входных данных. Это может быть, например, «[{« id »:« id1 »,« Item »:« item1 »,« Product »:« Product1 »,« Description »:« Description1 »}, {« id »:« id2 », «Item»: «item2», «Product»: «Product2», «Description»: «Description2»}, ...] 'или' {"page": 1, "records": 20: "total": 3 , "rows": [{"id": "id1", "cell": ["item1", "Product1", "Description1"]}, ...]} 'и многие другие. Какой из них вы используете? Какая часть данных является уникальным идентификатором элемента строки? – Oleg

+0

Ты только что спас меня! –

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