3

データベースからのテーブルのリストと、空の配列の列属性で最初に設定されたグリッドが入力されたKendoUIDropDownListを備えたアプリがあります。

...列:[]..。

目的は、リストからテーブルを選択し、テーブル名をサーバーに送信して、サーバーに列名と「SELECT*FROMtable」クエリからのデータを含むJSONデータを返すようにすることです。データは期待どおりに返され、最初は次のように使用できます。ここで、「自己」はビュー/モデルのグリッドへの単なる参照です。

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);
   } 

データを抽出してグリッドデータソースに割り当てた後、グリッドは正しい列ヘッダーとデータで正しく表示されます。しかし、リストから別のテーブルを選択してサーバーからデータを受信すると、上記のコードの実行によってグリッド列が更新されたように見えても、グリッド表示は更新されません。画面に表示される結果は、列ヘッダーが最初のグリッドの列の名前であり、2番目のクエリから返された行の空の行の数です。

http://www.kendoui.c​​om/forums/ui/grid /dynamically-add-new-column.aspxのフォーラム投稿に見られるように、この列の動的操作は非常に難しいようですが、その投稿は終了しています。特に3月20日の新しいリリースのウェブキャストに照らして、これに関してある程度の進展があったことを願っています。だから私は疑問が残っていると思います:私が求めているのは可能でさえありますか、それとも私はSOLですか?ありがとう。

4

1 に答える 1

8

初期化後にグリッドの列を動的に変更することはできません。ただし、新しいグリッドインスタンスを作成することはできます。destroy古いグリッドのメソッドを呼び出すことを忘れないでください。

于 2013-03-22T08:37:16.387 に答える