【问题标题】:How to update(reload) columns of kendo grid after datasource read method?如何在数据源读取方法后更新(重新加载)剑道网格的列?
【发布时间】:2019-08-11 11:10:23
【问题描述】:

我有 Kendo MVC 网格,网格的列是动态的,基于数据源读取方法填充的模型。我需要遍历动态列以在网格上生成它。

我保留了 autobind(false) 并在单击按钮时调用了 read 方法。但是,当生成剑道网格列时,我正在循环的列表的计数为 0,因为它在读取方法之后被填充。列生成发生在 read 方法之前。我需要在 read 方法之后重新生成列。 grid.refresh() 对我不起作用。

.AutoBind(false)
                            .Columns(columns =>
                            {
                                columns.Bound(x => x.Name).Title("Name");
                                for (int i = 0; i < Model.obj.lstdateValueDicts.Count; i++)
                                {
                                    var index = i;
                                    columns.Template(@<text>@Convert.ToString(Model.obj.lstdateValueDicts[index])</text>).Title(Model.obj.lstdateValueDicts[i].Value);
                                }
                            })

脚本:(点击按钮)

var grid = $('#FlowSheetsGrid').data('kendoGrid');
    grid.dataSource.read();
    debugger;
    grid.refresh();
    $("#FlowSheetSearchResults").show();

我希望在读取方法结束后重新生成列,因此我尝试在其上生成列的列表将得到一些计数,并且会生成。现在它的计数为 0,因此不会生成循环中的列。

【问题讨论】:

  • 首先:请显示整个网格定义。其次:如果刷新数据源,则不会重新生成列。我曾经遇到过类似的问题。如果我想刷新数据(这可能会更改列),我必须使用单独的 ajax 调用加载它们并根据返回的数据重新定义整个网格。我想这也是你必须做的。

标签: asp.net-mvc kendo-grid dynamic-binding


【解决方案1】:

把这个读取函数交给剑道网格试试

.DataSource(dataSource => 数据源 .Ajax() .PageSize(20) .Read(read => read.Action("loadMydata","MyController")) )

【讨论】:

    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多