我只是在我的应用程序中使用剑道网格,因为我需要在网格中显示一家公司的 2500 条记录。但是当我尝试绑定(bind)较少的数据(例如 200 个)时,它运行良好,但是当我尝试绑定(bind) 2500 个记录时,它不显示任何数据(“没有可显示的项目”)
要显示的网格:
<div id="divSearchResult" >
</div>
剑道绑定(bind):
<script>
function BindGridSearchResult(data)
{
$("#divSearchResult").kendoGrid({
dataSource: data,
navigatable: true,
pageable: true,
//toolbar: ["create", "save", "cancel"],
columns: [
{ field: "UnitID", title: "UnitID", width: 110, hidden: true },
{ field: "Nickname", title: "Nickname", width: 110 },
{ field: "ContractNumber", title: "ContractNumber", width: 110 },
{ field: "SerialNumber", title: "SerialNumber", width: 110 },
{ field: "UnitPriority", title: "UnitPriority", width: 110 },
{ field: "Address1", title: "Address1", width: 110 },
{ field: "City", title: "City", width: 110 },
{ field: "Region", title: "Region", width: 110 }]
});
}
</script>
Ajax调用获取数据:
$.ajax({
url: "/Admin/GetSearchUnit",
data: Data,
success: function (result)
{
debugger;
BindGridSearchResult(result);
//alert("Success");
},
erro: function (error, err) {
alert("Failed");
},
})
数据较少:
海量数据:
请帮我解决这个问题..
提前谢谢您..
最佳答案
您可以使用带有分页的 Ajax 绑定(bind),这对于 Kendo 网格来说是开箱即用的,如下所示:
@(Html.Kendo().Grid<SearchUnit>()
.Name("divSearchResult")
.DataSource(dataSource => dataSource // Configure the grid data source
.Ajax() // Specify that ajax binding is used
.Read(read => read.Action("GetSearchUnit", "Admin"))
)
.Columns(columns =>
{
columns.Bound(searchunit => searchunit.ID);
columns.Bound(searchunit => searchunit.Name);
})
.Pageable() // Enable paging
.Sortable() // Enable sorting
)
这样您就可以将数据接收到页面中,这是您应该如何实现服务器端:
public ActionResult GetSearchUnit([DataSourceRequest]DataSourceRequest request)
{
using (var _db = new DatabaseEntities())
{
IQueryable<SearchUnit> unitslist = _db.units;
DataSourceResult result = unitslist.ToDataSourceResult(request);
return Json(result);
}
}
关于asp.net-mvc - 海量数据未绑定(bind)到 Kendo Grid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650774/