我有一个带有KendoUI DropDownList的应用程序,该应用程序填充了数据库中的表列表和最初使用空数组的列atrribute设置的网格:
... 列: [] ...
目的是从列表中选择一个表,将表名发送到服务器并让服务器返回包含列名的JSON数据和来自“SELECT * FROM table”查询的数据。数据按预期返回,第一次通过我可以使用如下,其中“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);
}
提取数据并将其分配给网格数据源后,网格会正确显示正确的列标题和数据。但是,当我从列表中选择另一个表并从服务器接收数据时,网格显示不会更新,即使通过执行上述代码似乎已更新网格列。屏幕上结果的结尾是列标题是第一个网格中列的名称和第二个查询返回的行中的空行数。
http://www.kendoui.com/forums/ui/grid/dynamically-add-new-column.aspx的论坛帖子看到这种对列的动态操作似乎很难做到,但是这个帖子已经超过一年了,我希望有一些进展可以做到现在,特别是在3月20日新版本的网络直播中。所以我猜问题仍然存在:我追求的甚至是可能的还是我的SOL?感谢。
答案 0 :(得分:9)
初始化后,您无法动态更改网格列。但是,您可以创建新的网格实例。不要忘记调用旧网格的destroy
方法。