Я использую: VS 2010, ASP.NET MVC2, jqGrid 3.8.2.
Я хочу, чтобы кнопка «Изменить» navGrid открывала другое представление в контроллере. Я перепробовал несколько вещей безрезультатно. Для того, чтобы открыть выбранную строку, я предполагаю, что мне нужно будет добавить идентификатор в URL.
jQuery('#listComponents').jqGrid({
url: '/Components/Get',
editurl: '/Components/Edit',
...
}).navGrid('#pagerComponents', {edit:true, ...}, {url: '/Components/Edit'});
Любые предложения приветствуются. Если я не могу заставить его работать, я добавлю кнопку «Изменить» вне jqGrid и сделаю обычный вызов Html.ActionLink, чтобы открыть другое представление.
Спасибо!
Обновление
Следуя @ ответу Олега, теперь у меня отлично работает следующее:
jQuery('#listComponents').jqGrid(
{
url: '/Components/Get/',
...
}).navGrid('#pagerComponents', { edit: false, ...})
.navButtonAdd('#pagerComponents', {
caption: "",
title: "Edit Component",
buttonicon: "ui-icon-pencil",
onClickButton: function () {
var id = jQuery("#listComponents").getGridParam('selrow');
if (id) {
var data = jQuery("#listComponents").getRowData(id);
window.location = '/Components/Edit/' + data.COMPONENTID;
}
else {
alert("Please select a row to edit.");
}
}});