的jqGrid
$(document).ready(function () {
$("#grid").jqGrid({
url: '@Url.Action("GetAllAuthors", "Admin")',
datatype: "json",
mtype: 'get',
colNames: ['Yazar Adı', 'Öz Geçmiş'],
colModel: [
{ name: 'Name', index: 'Name', editable: false },
{ name: 'Description', index: 'Description', editable: false }
],
jsonReader: {
repeatitems: false,
id: "sno",
root: "rows", //array containing actual data
page: "page", //current page
total: "total", //total pages for the query
records: "records", //total number of records
repeatitems: false
},
rowNum: 10,
rowList: [10, 20, 30, 40, 50],
pager: jQuery('#gridpager'),
sortname: 'Name',
viewrecords: true,
sortorder: "asc",
width: 710,
height: 300
})
.navGrid('#gridpager', { edit: false, add: false, del: false, search: false, refresh: false })
.navButtonAdd('#gridpager', {
caption: "Düzenle",
buttonicon: "ui-icon-pencil",
onClickButton: function () {
var grid = $("#grid");
var rowid = grid.jqGrid('getGridParam', 'selrow');
//alert(rowid + " - " + grid.jqGrid('getCell', rowid, 'CustomerName') + " - Link: " + $("#customers_grid_table a.customer_details").attr("href"));
window.location = '@Url.Action("EditAuthor", "Admin")?authorId=' + rowid;
//LoadAction('@Url.Action("EditAuthor", "Admin")?authorId=' + rowid);
}
}); //end jqgrid
});
我的控制器中有两种方法
获取方法
[HttpGet]
public ActionResult EditAuthor(int authorId)
发布方法
[HttpPost]
public ActionResult EditAuthor(AuthorViewModel model, HttpPostedFileBase file)
我选择了一行并单击了编辑按钮,我希望触发get方法,但是post方法被触发。我该怎么做才能解决方法?
感谢。
答案 0 :(得分:1)
如果设置window.location
的新值,将使用HTTP GET。要生成HTTP POST,您可以使用$.ajax
或提交一些表单。例如,您可以动态构建不可见的<form>
并提交它。例如
onClickButton: function () {
var rowid = $(this).jqGrid("getGridParam", "selrow"),
myForm = document.createElement("form"),
param1 = document.createElement("input");
myForm.action = '@Url.Action("EditAuthor", "Admin")';
myForm.method = "POST";
myForm.style.display="none";
param1.name = "authorId";
param1.type = "text";
param1.value = rowid;
myForm.appendChild(param1);
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
我建议您另外添加验证是否选择了某行(rowid
是否为空)。
此外我建议你
gridview: true
选项,这样可以提高网格的性能。pager: jQuery('#gridpager')
替换为pager: '#gridpager'
。 jsonReader
选项的当前值替换为jsonReader: {repeatitems: false, id: "sno"}
。您指定的选项将组合具有默认值(请参阅the documentation)。此外,您当前的jsonReader
选项值包含语法错误,因为您指定了两次相同的属性repeatitems: false
。