Kendo 网格分页无法正常工作
Kendo Grid paging not working properly
我正在使用 Kendo MVC 网格。使用数据 table 而不是模型在网格中显示。并根据页码填充数据。但是分页不起作用下面是我的代码:
List.cshtml 文件
@(Html.Kendo().Grid(Model)
.Name("UserGrid")
.EnableCustomBinding(true)
.Columns(columns=>
{
foreach(System.Data.DataColumn column in Model.Columns)
{
columns.Bound(column.ColumnName).Title(column.Caption).Width(200);
}
}
)
.Selectable(selectable=>selectable
.Type(GridSelectionType.Row)
)
.Pageable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
foreach(System.Data.DataColumn column in Model.Columns)
{
model.Field(column.ColumnName,column.DataType);
}
}
)
.Total((int)ViewData["recordcount"])
.Read(read => read.Action("Read", "User").Type(HttpVerbs.Get))
)
)
这是控制器代码。 UserList 函数将 return 数据作为数据 table 和 Read 函数填充数据并通过网格传递:
private DataTable UserList()
{
DataSet ds = new DataSet();
if (ViewData["pageno"] != null && Convert.ToInt16(ViewData["pageno"]) > 1)
{
iUserSearch.pageNumber = Convert.ToInt16(ViewData["pageno"]);
}
else
{
iUserSearch.pageNumber = 1;
}
iUserSearch.pageSize = 10;
ds = iUser.ListUser(iUserSearch);
var dataTable = new DataTable();
dataTable = ds.Tables[0];
if (ds.Tables[0].Rows.Count != 0 )
ViewData["recordcount"] = (int)ds.Tables[0].Rows[0]["Totalcount"];
return dataTable;
}
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
//Paging and Sorting
int currentPage = request.Page;
int pageSize = request.PageSize;
ViewData["pageno"] = currentPage;
//Setting the TOTAL
DataTable dt = UserList();
//return View("List",dt);
//var result = dt;
return Json(dt.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
我已通过在视图中分配模型 ID 解决了这个问题
我正在使用 Kendo MVC 网格。使用数据 table 而不是模型在网格中显示。并根据页码填充数据。但是分页不起作用下面是我的代码:
List.cshtml 文件
@(Html.Kendo().Grid(Model)
.Name("UserGrid")
.EnableCustomBinding(true)
.Columns(columns=>
{
foreach(System.Data.DataColumn column in Model.Columns)
{
columns.Bound(column.ColumnName).Title(column.Caption).Width(200);
}
}
)
.Selectable(selectable=>selectable
.Type(GridSelectionType.Row)
)
.Pageable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
foreach(System.Data.DataColumn column in Model.Columns)
{
model.Field(column.ColumnName,column.DataType);
}
}
)
.Total((int)ViewData["recordcount"])
.Read(read => read.Action("Read", "User").Type(HttpVerbs.Get))
)
)
这是控制器代码。 UserList 函数将 return 数据作为数据 table 和 Read 函数填充数据并通过网格传递:
private DataTable UserList()
{
DataSet ds = new DataSet();
if (ViewData["pageno"] != null && Convert.ToInt16(ViewData["pageno"]) > 1)
{
iUserSearch.pageNumber = Convert.ToInt16(ViewData["pageno"]);
}
else
{
iUserSearch.pageNumber = 1;
}
iUserSearch.pageSize = 10;
ds = iUser.ListUser(iUserSearch);
var dataTable = new DataTable();
dataTable = ds.Tables[0];
if (ds.Tables[0].Rows.Count != 0 )
ViewData["recordcount"] = (int)ds.Tables[0].Rows[0]["Totalcount"];
return dataTable;
}
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
//Paging and Sorting
int currentPage = request.Page;
int pageSize = request.PageSize;
ViewData["pageno"] = currentPage;
//Setting the TOTAL
DataTable dt = UserList();
//return View("List",dt);
//var result = dt;
return Json(dt.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
我已通过在视图中分配模型 ID 解决了这个问题