2

Telerik の KendoUI を使用して、汎用ハンドラーから動的 JSON にバインドするツリービューを取得しようとしています。

私のジェネリック ハンドラーでは、Newtonsoft.Json を使用して List を JSON の結果に変換しています。これはうまく機能し、別の KendoUI コントロール (チャート) でも機能します。

ツリービューを構築するためのjavascriptに関する限り、私が持っているものは次のとおりです。

var treeSource = new kendo.data.DataSource({
                transport: {
                    read: {
                        url: "Services/CategoryHandler.ashx",
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        type: "GET"
                    }
                }
            });

            $("#treeview").kendoTreeView({
                dataSource: treeSource
            });

返された JSON の短縮された例を次に示します。

[
   {
      "text":"Node 1",
      "expanded":true,
      "items":null
   },
   {
      "text":"Node 2",
      "expanded":true,
      "items":null
   }
]

「アイテム」はツリーのサブコレクションになります。

次のようなアイテムをデータソースに直接追加すると:

var treeview = $("#treeview").kendoTreeView({
                            dataSource: [
                                { text: "Item 1", expanded: true, items: [
                                    { text: "Item 1.1" },
                                    { text: "Item 1.2" },
                                    { text: "Item 1.3" }
                                ] },
                                { text: "Item 2", items: [
                                    { text: "Item 2.1" },
                                    { text: "Item 2.2" },
                                    { text: "Item 2.3" }
                                ] },
                                { text: "Item 3" }
                            ]
                        })

それはうまく動作します。JSONを書き出すサービスを呼び出すと機能しません。機能しないということは、データが表示されず、空白になるということです。

不足している可能性のあるものについての考えや、データがサービスから返され、DataSource が適切に入力されていることを確認する方法についてのガイダンスはありますか?

ありがとう

4

2 に答える 2

3

重要2012 年 11 月 8 日現在、KendoUI はすでに対応しています。

Kendo TreeView は、データ ソースへのバインディングをまだサポートしていません。幸いなことに、これは計画中であり、まもなく (次のリリースで) 実装される予定です。

于 2012-01-04T21:33:37.123 に答える
0

トリックでうまくいきます。コントローラでシリアル化された Json で動的 ViewBag を使用しているため、ノードがうまく描画されます。

私の問題は、イベントが正常に機能していないように見えることです。たとえば、onDrop をキャッチしてアラートを発生させて、そのようなノードの実際の値を表示し、代わりにすべてのノードのテキストを表示したいと考えています。ちなみに、これは私を夢中にさせています。

これは私のコードです。希望は誰かを助けることができます。

    function onDrop(e) {
        alert(treeView.text(e.sourceNode));
    }

機能させるには、テンプレートを割り当てる必要があります。

template: "<span rel='#= item.Id #'> #=item.text #</span>",
于 2012-04-11T04:19:02.500 に答える