asp.net-mvc - 海量数据未绑定(bind)到 Kendo Grid

标签 asp.net-mvc kendo-ui kendo-grid

我只是在我的应用程序中使用剑道网格,因为我需要在网格中显示一家公司的 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");
            },

        })

数据较少:enter image description here

海量数据:

enter image description here

请帮我解决这个问题..

提前谢谢您..

最佳答案

您可以使用带有分页的 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/

相关文章:

asp.net-mvc - 使用 NHibernate 时如何处理成员资格/角色?

javascript - 如何在 Kendo 中设置 CRUD 工作?

javascript - 当本地绑定(bind)数据为整数时在 Kendo UI Grid 上进行过滤

javascript - 如何在一行或剑道网格中添加数据

ASP.NET MVC 身份验证 cookie

asp.net-mvc - 我必须更改 Azure 的 ASP MVC 身份验证系统吗?

c# - 将变量从 Controller 传递到 Devexpress GridView 列 EndCallBack JS

php - Kendo 自动完成功能不起作用

javascript - 反转复选框值,以便在模型中检查为 false

c# - MVC Kendo 网格将下拉列表值传递给更新方法