Kendo ui KendoUI网格以编程方式创建列

Kendo ui KendoUI网格以编程方式创建列,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我有一个带有KendoUI DropDownList的应用程序,该应用程序由数据库中的表列表和网格填充,网格最初设置为空数组的列属性: 。。。 列:[] 其目的是从列表中选择一个表,将表名发送到服务器,并让服务器返回包含列名的JSON数据和select*from表查询中的数据。数据按预期返回,我第一次可以使用它,如下所示,其中self只是我视图/模型中网格的引用: self.columns.removeAll(); for (var i = 0; i < joOutput["Cols"

我有一个带有KendoUI DropDownList的应用程序,该应用程序由数据库中的表列表和网格填充,网格最初设置为空数组的列属性:

。。。 列:[]

其目的是从列表中选择一个表,将表名发送到服务器,并让服务器返回包含列名的JSON数据和select*from表查询中的数据。数据按预期返回,我第一次可以使用它,如下所示,其中self只是我视图/模型中网格的引用:

self.columns.removeAll();

for (var i = 0; i < joOutput["Cols"].length; i++) {
   var col = { title: joOutput["Cols"][i], field: joOutput["Cols"][i] };

   self.columns.push(col);
   } 
提取我的数据并将其分配给grids数据源后,网格将正确显示,并包含正确的列标题和数据。但是,当我从列表中选择另一个表并从服务器接收数据时,网格显示不会更新,即使通过执行上述代码,网格列似乎已经更新。屏幕上的最终结果是列标题是来自第一个网格的列的名称和来自第二个查询返回的行的空行数


正如论坛上的帖子所看到的那样,这种对专栏的动态操纵似乎很难做到,但这篇帖子已经有一年多的历史了,我希望现在在这方面会取得一些进展,特别是考虑到最近3月20日发布的新版本的网络广播。所以我想问题仍然存在:我所追求的是可能的还是我是索尔?谢谢。

初始化后无法动态更改网格的列。但是,您可以创建一个新的网格实例。别忘了调用旧网格的destroy方法。

我是KendoUI的新手,但类似于以下内容?var grd=$jgrdResults.datakendoGrid;破坏;grd=$grdResults.kendoGrid{columns:myColumns};对您还可以添加$grdResults.empty来清除旧的HTML。