如何在MVC中使用ajax url数据加载分页JSONResult?
我在MVC中使用json结果数据分页时遇到问题。 下面的代码是我的ajax数据加载:如何在MVC中使用ajax url数据加载分页JSONResult?,json,model-view-controller,jsonresult,Json,Model View Controller,Jsonresult,我在MVC中使用json结果数据分页时遇到问题。 下面的代码是我的ajax数据加载: jQuery.ajax({ url: "/Products/Search", type: "POST", dataType: "json", success: function (data) { displayData(data); }, error: function (errdata, e
jQuery.ajax({
url: "/Products/Search",
type: "POST",
dataType: "json",
success: function (data) {
displayData(data);
},
error: function (errdata, errdata1, errdata2) { $('#ProductList').html("Error in connect to server" + errdata.responseText); }
我的控制器JsonResult
如下:
public JsonResult List()
{
tbl = db.tblProducts;
return Json(tbl, JsonRequestBehavior.AllowGet);
}
我可以从上面的ajax数据加载成功接收数据,但我无法对其分页。
请帮帮我。
谢谢。没有用于分页的代码,您要进行客户端分页还是服务器端分页 考虑开发一个ASP.NETMVC应用程序 服务器端分页:您可以单独加载特定数量的记录。 使用Skip和Take函数
public JsonResult GetOrders(int pagesize, int pagenum)
{
var query = Request.QueryString;
var dbResult = db.Database.SqlQuery<Order>(this.BuildQuery(query));
var orders = from order in dbResult
select new Order
{
ShippedDate = order.ShippedDate,
ShipName = order.ShipName,
ShipAddress = order.ShipAddress,
ShipCity = order.ShipCity,
ShipCountry = order.ShipCountry
};
var total = dbResult.Count();
orders = orders.Skip(pagesize * pagenum).Take(pagesize);
var result = new
{
TotalRows = total,
Rows = orders
};
return Json(result, JsonRequestBehavior.AllowGet);
}
public JsonResult GetOrders(int pagesize,int pagenum)
{
var query=Request.QueryString;
var dbResult=db.Database.SqlQuery(this.BuildQuery(query));
var orders=来自dbResult中的订单
选择新订单
{
ShippedDate=order.ShippedDate,
ShipName=order.ShipName,
ShipAddress=order.ShipAddress,
ShipCity=order.ShipCity,
ShipCountry=order.ShipCountry
};
var total=dbResult.Count();
orders=orders.Skip(pagesize*pagenum)。Take(pagesize);
var结果=新
{
TotalRows=总计,
行=订单
};
返回Json(结果,JsonRequestBehavior.AllowGet);
}
客户端分页:将整个记录加载到您的视图中,然后执行分页
示例代码:签出
Database db = new Database();
public int PageSize = 5;
public int VisiblePageCount = 5;
public JsonResult Search(int page = 1)
{
var model = new ModelName();
var tbl = db.tblProducts;
var renderedScheduleItems =(tbl.Skip((page - 1) * PageSize)
.Take(PageSize)
.ToList());
model.Products = renderedScheduleItems;
model.PagingDetail = new PagingDetail()
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = items.Count,
VisiblePageCount = VisiblePageCount
};
return Json(model, JsonRequestBehavior.AllowGet);
}