以下是我正在构建ASP.NET MVC Web应用程序的方案
我的网页为page.aspx
,其中包含一个infragistics 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帮助我错误或更好的方式。提前致谢
答案 0 :(得分:3)
看起来您的子页面缺少pageIndexUrlKey的设置。默认情况下,DataSource将使用" page"但由于您的Controller接受名为" curpage"相反,只要您实现分页并调用该控制器,就必须确保设置密钥。