以下是我构建ASP.NET MVC web应用程序的场景
我有一个名为page.aspx
的网页,其中包含一个基础知识iggrid。它被初始化为
$.ig.loader(function () {
$("#listingGrid").igGrid({
primaryKey:"Code",
autoGenerateColumns: false,
responseDataKey: "Data.d",
columns: _data,
features: [
{
name: "GroupBy",
},
{
name: 'Paging', pageSize: 10, type: "remote",
recordCountKey: "Data.TotalRowCount",
pageSizeUrlKey: "pagesize",
pageIndexUrlKey: "curpage"
},
{
name: "Sorting",
type: "local"
},
{
name: "Summaries",
type: "local"
}
]
});
});
我在这个网格中通过像这样的按钮点击来获取数据
$("#showRecords").click(function () {
var url = "/Main/Grid?tbname=" + parameter;
var jsonp = new $.ig.JSONPDataSource({
dataSource: url, paging: {
enabled: true, pageSize: 10,
type: "remote"
}
});
$("#listingGrid").igGrid("dataSourceObject", jsonp).igGrid("dataBind");
});
这很好,因为它应该工作
但我有另一个页面,它是page.aspx的子页面,作为search.aspx
我正试图以与相同的方式绑定数据
$("#ok").click(function () {
var url = "/Main/Grid?tbname=" + parameter + "&_query=" + query;
var jsonp = new $.ig.JSONPDataSource({
dataSource: url, paging: {
enabled: true, pageSize: 10,
type: "remote"
}
});
window.parent.$("#listingGrid").igGrid("dataSourceObject", jsonp).igGrid("dataBind");
});
但是url调用不会到达控制器端
这是我的控制器
public ActionResult Grid(string tbname, string _query, int pagesize, int curpage)
{
res = MvcApplication.dbm.SqlQuery(_query).ToList();
var jsonDataObj = Json(new
{
responseDataKey = "d",
CurrentRecords=skip+top,
_skip=skip,
_top=top,
TotalRowCount=_totalrowcount,
d = res
});
return Json(res);
}
对于page.aspx
,调用将转到控制器进行数据绑定,但对于search.aspx
,它不进行调用。
Plz帮助我哪里错了或者更好的方法。提前感谢
您的子页面似乎缺少pageIndexUrlKey的设置。默认情况下,DataSource将使用一个键"page",但由于您的Controller接受了一个名为"curpage"的属性,因此无论何时实现分页并调用该Controller,都必须确保设置了该键。