【发布时间】: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