kendo 同一页面上的多个网格数据不匹配

kendo multiple grid on same page data mismatch

我在单个页面上有两个 ASP MVC Kendo 网格。 当我加载该页面时,我的数据在两个网格之间变得不匹配。 我的两种方法调用,但是当它显示我在两个网格之间混合的所有数据时。 如何解决?

谁能帮帮我?

//This is for Grid1
@(Html.Kendo().Grid<Alliant.Domain.Model1>()
        .Name("Model1Grid")
        .NoRecords("No record found.")
        .Columns(columns =>
        {
           columns.Bound(e => e.Name).Width("10%");
           columns.Bound(e => e.Description).Width("10%").Filterable(false);

        })
        .Pageable(p =>
            {
                p.PreviousNext(false);
                p.Numeric(false);
            })
        .Sortable()
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(Constant.KendoDefaultPageSize)
            .Read(read => read.Action("GetDataBySearch", "Model1", new { area = "" }))
            .ServerOperation(true)
            .Model(Model1 => Model1.Id(x => x.Model1ID))
        )
        .Resizable(resize => resize.Columns(true))

    )
//this is for secounf grid on same page
@(Html.Kendo().Grid<Alliant.Domain.Model2>()
        .Name("Model2Grid")
        .NoRecords("No record found.")
        .Columns(columns =>
        {
           columns.Bound(e => e.Name).Width("10%");
           columns.Bound(e => e.Description).Width("10%").Filterable(false);

        })
        .Pageable(p =>
            {
                p.PreviousNext(false);
                p.Numeric(false);
            })
        .Sortable()
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(Constant.KendoDefaultPageSize)
            .Read(read => read.Action("GetData2BySearch", "Model2", new { area = "" }))
            .ServerOperation(true)
            .Model(Model2 => Model2.Id(x => x.Model2ID))
        )
        .Resizable(resize => resize.Columns(true))

    )

嗨@Arpit 我也面临同样的问题,

某个时间先request先完成然后在另一个网格中的数据映射。

请检查以下解决方案

  1. 首先你需要在两个网格中设置AutoBind(false)。仅供参考 - Click Me

将以下 jquery 代码添加到您的页面并检查。

$(document).ready(function(){
   var Model1Grid= $("#Model1Grid").data("kendoGrid");
   var Model2Grid= $("#Model2Grid").data("kendoGrid");

   Model1Grid.dataSource.read().then(function(){
       Model2Grid.dataSource.read();
   });
});