2013-08-26 2 views
0

Я читал документацию here относительно того, как работает API-интерфейс удаления, , но я не нашел способа очистить дополнительные параметры/с. Его можно редактировать, а также при извлечении данных, но не при удалении.jqGrid, передающий дополнительные параметры при вызове delGridRow

В принципе, чтобы объяснить, зачем мне это нужно, у меня есть редактируемая сетка на основе сеанса, но для сеанса требуется уникальное руководство, которое генерируется, когда строки записываются в сеанс, а затем я визуализую их как скрытые входы (вне сетки) с определенным идентификатором так что каждая сеть знает, какой вход является его. Я знаю, что gridDelRow имеет опцию «URL», и я мог сцепить URL со строкой запроса, но это нарушило бы мое текущее поведение для метода действия контроллера, который выглядит в настоящее время, как этот

public virtual ActionResult EditRow(RowGridViewModel rowGridViewModel, string guid) 
{ 
     return HandleGridItemEdit(rowGridViewModel, guid); 
} 

И это мой jqGrid API вызова

$(gridObject).jqGrid("delGridRow", id, { 
    "top": "", 
    "left": "", 
    "width": "150px", 
    "zIndex": 99999, 
    "modal": true, 
    "drag": false, 
    "closeOnEscape": true, 
}); 

так что, если я изменить URL-адрес вариант это нарушает мою текущую функциональность, которая не является вариантом, так как тот же метод для редактирования в строке используется. Также я знаю, что я мог бы отображать скрытые столбцы с этими данными внутри, но это действительно уродливо. Поэтому, если у вас есть предложения, как это было бы сделано, я был бы очень признателен.

ответ

1

Вы можете сделать это следующим образом

function deleteRow(id, gridObject) { 
    var gridGuid = getGridSessionGuid(gridObject); 
    $(gridObject).jqGrid("delGridRow", id, { "delData": { guid: gridGuid } }); 
} 

EDIT: Ups не видел комментарии

+0

Ну, так как я не могу принять комментарий @Olegs в качестве ответа, я соглашусь с вами и его еще лучшим решением, чем мое. – TheCodeDestroyer

0

Я действительно нашел достойное решение, которое не нарушает мой код. Мне просто нужно позаботиться о том, чтобы все методы действий имели одно и то же имя параметра «rowGridViewModel».

function deleteRow(id, gridObject) { 
     var gridGuid = getGridSessionGuid(gridObject); 
     $(gridObject).jqGrid("delGridRow", id, { 
      "serializeDelData": function (postdata) { 
       return { rowGridViewModel: postdata, guid: gridGuid }; 
      }, 
     }); 
    } 
+1

Вы можете использовать 'delData: {GUID: gridGuid}' 'вариант delGridRow 'для расширения данных, отправленных' delGridRow'. – Oleg

+0

Ничего себе спасибо, черт возьми, я пропустил этот ... Теперь я вижу его в документации. И это лучшее решение, чем мое. – TheCodeDestroyer

+0

Добро пожаловать! – Oleg

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