jQuery jQgrid 的 gridComplete 事件正在触发但 loadComplete 没有触发..... 为什么?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18161220/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
jQgrid's gridComplete event is firing but loadComplete is not firing..... why?
提问by Rahul
In my ASP.NET project I am integrating jQgrid to show data. My Problem is loadComplete event is not firing. My entire jQgrid code is as follows:
在我的 ASP.NET 项目中,我正在集成 jQgrid 来显示数据。我的问题是 loadComplete 事件没有触发。我的整个 jQgrid 代码如下:
function getData(jqGridParams)
{
var sortcookieval = $.cookie("ItemGridSortInfo");
var sname = "";
var sorder = "";
if (sortcookieval != null)
{
var sortInfo = sortInfoFromCookie("ItemGridSortInfo");
sname = sortInfo.sortname;
sorder = sortInfo.sortorder;
}
else
{
sname = "";
sorder = "asc";
}
var params = new Object();
params.pageIndex = jqGridParams.page;
params.pageSize = jqGridParams.rows;
params.sortIndex = sname; //jqGridParams.sidx;
params.sortDirection = sorder; //jqGridParams.sord;
params._search = jqGridParams._search;
if (jqGridParams.filters === undefined)
params.filters = null;
else
params.filters = jqGridParams.filters;
$.ajax({
url: 'WSAjax.asmx/GetDataForGrid',
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(params),
success: function (data, textStatus)
{
if (textStatus == "success")
{
var grid = $("#ItemGrid")[0];
grid.addJSONData(data.d);
}
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus, errorThrown);
}
});
}
function saveSortInfoToCookie(name, grid)
{
var sortInfo = new Object();
sortInfo.sortname = grid.jqGrid('getGridParam', 'sortname');
sortInfo.sortorder = grid.jqGrid('getGridParam', 'sortorder');
//$('#Hidden').val(JSON.stringify(gridInfo));
//alert($('#Hidden').val());
$.cookie(name, JSON.stringify(sortInfo), {expires: 5});
}
function sortInfoFromCookie(name)
{
var c = $.cookie(name);
if (c === null)
return;
return $.parseJSON(c);
}
$(document).ready(function () {
var oItemGrid = $("#ItemGrid");
oItemGrid.jqGrid({
datatype:
function (jqGridParams) {
getData(jqGridParams);
},
colNames: ['Type', 'Name', 'Desc'],
colModel: [
{ name: 'Type', index: 'Type', width: 40 },
{ name: 'Name', index: 'Name', width: 40 },
{ name: 'Desc', index: 'Desc', width: 40, sortable: false}],
autowidth: true,
height: 'auto',
rowNum: 10,
rowList: [10, 20, 30, 40],
viewrecords: true,
gridview: true,
autoencode: true,
ignoreCase: true,
caption: 'Remember Sorting and Filtering Functionality',
pager: '#IGPager',
onSortCol: function (colModel, colName, sortOrder) {
saveSortInfoToCookie("ItemGridSortInfo", $("#ItemGrid"));
var storeval = $.cookie("ItemGridSortInfo");
alert("Saving sort info in cookie: " + storeval);
},
gridComplete: function () {
var prvData = $.cookie("ItemGridSortInfo");
alert("Reading saved sort info from cookie : " + prvData);
var pageno = $.cookie("ItemGridPageInfo");
alert("Reading saved page no. from cookie:" + pageno);
},
loadComplete: function (data) {
if(data != null)
{
alert("Inside loadComplete..");
}
},
//loadonce: true
}).jqGrid('navGrid', '#IGPager', { edit: false, add: false, del: false }, {}, {}, {}, {}, {});
});
and if possible please tell me difference between gridComplete and loadComplete according to my scenario....
如果可能的话,请根据我的情况告诉我 gridComplete 和 loadComplete 之间的区别......
回答by zs2020
The problem is you set datatype
as a function(custom defined function for retrieving data) instead of local
. If you use a function, then you should call loadComplete
in your own implementation.
问题是您设置datatype
为函数(用于检索数据的自定义定义函数)而不是local
. 如果你使用一个函数,那么你应该调用loadComplete
你自己的实现。
So if you change it to other type like local, the loadComplete
will be handled automatically by jqGrid. I created a demo for you.
因此,如果您将其更改为其他类型,如本地,loadComplete
将由 jqGrid 自动处理。我为你创建了一个演示。