我对jquery和jqgrid很新。我使用ASP.NET WebForms。我能够获得一些数据舞会服务器并在网格中显示它。我使用PageMethods
从服务器获取数据。通常我的代码是
function CreateGrid(){
$("#sestGrid").jqGrid({
datatype: GetData,
//toolbar: [true, "top"],
colNames: ['Name', 'Age'],
colModel: [
{ name: 'Name', index: 'Name', width: 170, align: 'left',
sortable: false, key: true },
{ name: 'Age', index: 'Age', width: 40, align: 'center',
sortable: false, editable: true },
],
ondblClickRow: function () {
var row_id = $("#sestGrid").getGridParam('selrow');
$('#sestGrid').editRow(row_id, true);
}
});
}
function GetData() {
PageMethods.GetSestevalniStevecData(GotData);
}
function GotData (data) {
$("#sestGrid").clearGridData(false);
for (var j = 0; j <= data.length; j++)
$("#sestGrid").jqGrid('addRowData', j + 1, data[j]);
}
所以,现在我想编辑一些数据并将其发布到服务器。如何使用PageMethods
执行此操作?我应该使用任何其他方法吗?
还有一件事。我检查了演示http://trirand.com/blog/jqgrid/jqgrid.html,在所有编辑示例中,您只能编辑一行,然后您必须保存更改...是否可以编辑多行并一步保存所有更改?
谢谢大家。
答案 0 :(得分:1)
jqGrid旨在与ajax服务一起使用。因此,如果用户更改某行的数据,则更改将发送到服务器:发送到您通过jqGrid参数editurl
配置的URL。因此,实现行编辑的最简单方法是在您的网站中包含ASMX Web服务或WCF服务。无论是使用ASP.NET WebForms,ASP.NET MVC还是仅使用纯HTML作为页面,这一点都不重要。因此,只需选择您喜欢的技术,并将相应的页面添加到您的网站。
ASMX或WCF应该有一个带有签名的方法,如
public string MyDataEdit (string Age, string oper, string id)
(有关详细信息,请参阅this旧答案)。在添加操作的情况下,该方法应返回新添加项的ID(在您的情况下为Name
)。
还有一个小小的评论。您可以将ondblClickRow
函数的定义从function()
更改为function(row_id)
,并删除使用的行getGridParam('selrow')
。
答案 1 :(得分:0)
我用了你的例子并改了一下:
ondblClickRow: function (rowid) {
if (rowid && rowid != lastsel) {
changedRows.push(rowid); //keep row id
jQuery('#jqgrid').editRow(rowid, true);
}
}
在保存按钮点击事件下:
$.each(changedRows, function () {
var row = $("#jqgrid").getRowData(this);
var Id = row['ID'];
var price = $(row['Price']).val(); //this is an input type
});
HTH某人:)