2013-03-22 89 views
3

我有一個KendoUI DropDownList的一個應用程序,會填充數據庫表的列表並初步設定了列atrribute空數組的一個網格:KendoUI網格創建新列編程

... 列:[] ...

的意圖是從列表中選擇一個表,送表名到服務器,並從「選擇包含有列名的服務器返回JSON數據,並將數據* FROM表「查詢。數據回來預期並在第一時間通過如下我可以用它在那裏「自我」僅僅是一個在我看來/模型網格參考:

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?謝謝。

回答

9

初始化後無法動態更改網格的列。但是,您可以創建一個新的網格實例。不要忘記調用舊網格的destroy方法。

+0

我是新來的KendoUI,但類似以下內容? var grd = $ j(「#grdResults」)。data(「kendoGrid」); grd.destroy(); grd = $(「#grdResults」)。kendoGrid({columns:myColumns }); – user2030159 2013-03-22 17:00:18

+2

是的。您還可以添加$(「#grdResults」)。empty()來清除舊的HTML。 – 2013-03-22 18:44:47

+0

謝謝。那就是訣竅。 – user2030159 2013-03-25 14:25:44