Asp.net mvc 3 在Asp.NETMVC中使用带有自定义分页的JQGrid
我将JQGrid与Trirand.Web.Mvc类一起使用,并试图找出如何进行自定义分页 我看过页面演示 这些演示的问题在于,它们直接绑定到linq上下文对象,并让MVC负责分页Asp.net mvc 3 在Asp.NETMVC中使用带有自定义分页的JQGrid,asp.net-mvc-3,jqgrid-asp.net,Asp.net Mvc 3,Jqgrid Asp.net,我将JQGrid与Trirand.Web.Mvc类一起使用,并试图找出如何进行自定义分页 我看过页面演示 这些演示的问题在于,它们直接绑定到linq上下文对象,并让MVC负责分页 // This method is called when the grid requests data. You can choose any method to call // by setting the JQGrid.DataUrl property pu
// This method is called when the grid requests data. You can choose any method to call
// by setting the JQGrid.DataUrl property
public JsonResult PerformanceLinq_DataRequested()
{
// Get both the grid Model and the data Model
// The data model in our case is an autogenerated linq2sql database based on Northwind.
var gridModel = new OrdersJqGridModel();
var northWindModel = new NorthwindDataContext();
// return the result of the DataBind method, passing the datasource as a parameter
// jqGrid for ASP.NET MVC automatically takes care of paging, sorting, filtering/searching, etc
return gridModel.OrdersGrid.DataBind(northWindModel.OrdersLarges);
}
我想要绑定到的数据集非常复杂,我从一个存储过程返回它,它为我进行分页
所以我要给JQGrid的就是整个结果集的特定页面的正确行大小。我还可以返回总行数
因此,我在myListOfObjects列表中列出了我的结果
我可以使用myListOfObjects.AsQueryable()将其传递到数据绑定
问题是,JQGrid认为只有{page size}行,因此不显示任何分页选项
是否可以传入总行数
其他网格,如Teleriks MVC网格,允许您传入总行数,并且它正确显示分页Ok,所以我自己设法解决了这个问题。也许还有其他的方法,如果是的话,我很想听听他们 JQGrid.DataBind生成一个JsonResult对象,其数据值设置为Trirands自己的对象Trirand.Web.Mvc.JsonResponse 它是Trirand.Web.Mvc的一个内部类,所以我必须复制它的结构,我可以使用Visual Studio调试看到它 它有:
- 页码-当前页码
- 记录-记录总数
- 行-类型为Trirand.Web.Mvc.JsonRow(我也需要复制)
- total—所需的总页数
- 单元格-列的字符串数组
- id-您的行id
var jsonList = new List<JSONRow>();
myData.ForEach(x => jsonList.Add(new JSONRow(x)));
var jsonResult = Json (new
{
page = page,
rows = jsonList.ToArray(),
records = totalRows,
total = Math.Round((double)totalRows / rows, MidpointRounding.AwayFromZero)
}, JsonRequestBehavior.AllowGet);
return jsonResult;
public class JSONRow
{
public string[] cell { get; set; }
public string id { get; set; }
public JSONRow(MyObjectType myObject)
{
id = myObject.id;
cell = new string[3];
cell[0] = myObject.Col1;
cell[1] = myObject.Col2?? "";
cell[2] = myObject.Col3?? "";
}
}