无法使JQGrid loadComplete事件触发
我试图模拟加载网格后单击第一个单元格。我已经知道如何实现这一点,但由于某些原因,我无法启动loadComplete事件。我添加了一个简单的函数,其中包含一个警报来尝试它,但是即使页面加载没有问题,我也没有收到警报,调试显示该函数从未被调用 gridComplete也不工作 我使用的是jgGrid 3.8.2 知道我做错了什么吗?我已将我的代码张贴在下面:无法使JQGrid loadComplete事件触发,jqgrid,jquery,Jqgrid,Jquery,我试图模拟加载网格后单击第一个单元格。我已经知道如何实现这一点,但由于某些原因,我无法启动loadComplete事件。我添加了一个简单的函数,其中包含一个警报来尝试它,但是即使页面加载没有问题,我也没有收到警报,调试显示该函数从未被调用 gridComplete也不工作 我使用的是jgGrid 3.8.2 知道我做错了什么吗?我已将我的代码张贴在下面: $(document).ready(function () { $("#grid").jqGrid(
$(document).ready(function () {
$("#grid").jqGrid(
{
datatype: function () {
$.ajax(
{
type: "POST",
url: "Default.aspx/GetListOfPersons",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (jsondata, stat) {
if (stat == "success")
jQuery("#grid")[0].addJSONData(JSON.parse(jsondata.d));
else
alert("error");
}
});
},
jsonReader:
{
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
id: "Id"
},
colModel: //Columns
[
{ name: 'FirstName', index: 'FirstName', width: 200, align: 'Left', label: 'First Name', editable: true },
{ name: 'LastName', index: 'LastName', width: 300, align: 'Left', label: 'Last Name', editable: true },
{ name: 'Age', index: 'Age', width: 50, align: 'Right', label: 'Age', editable: true }
],
caption: "Personas",
cellEdit: true,
cellsubmit: 'clientArray',
pager: "#pager",
loadComplete: function () { alert("load complete"); }
}
).navGrid('#pager', { edit: false, add: false, del: false, search: false }).navButtonAdd('#pager',
{
caption: "Save",
onClickButton: function () {
var ret = $("#grid").getChangedCells('dirty');
var ret2 = JSON.stringify(ret);
$.ajax(
{
type: "post",
url: "Default.aspx/GetChangesBack",
data: '{"o":' + ret2 + '}',
contentType: "application/json; charset=utf-8",
dataType: "json"
}
);
},
position: "last"
}
);
}
);
因为您自己正在调用$.ajax,所以我认为loadComplete不应该启动
不过,gridComplete应该可以工作。因为您自己正在调用$.ajax,所以我认为loadComplete不应该启动
不过,gridComplete应该可以工作。您可以发布Default.aspx/GetListOfPersons的代码吗?在我看来,您两次进行JSON序列化。我认为这是因为您在$.ajax的成功处理程序中使用了JSON.parsejsondata.d。如果您发布代码,我将尝试对其进行更改,这样您就可以使用jqGrid,而无需将数据类型作为函数。您可以发布Default.aspx/GetListOfPersons的代码吗?在我看来,您两次进行JSON序列化。我认为这是因为您在$.ajax的成功处理程序中使用了JSON.parsejsondata.d。如果您发布代码,我将尝试对其进行更改,这样您就可以使用jqGrid,而无需将数据类型作为函数。