0

JSTree プラグインを使用して、部門の制限を表示します。サーバー側 (asp.net 3.5) はうまく機能し、JSON オブジェクトを取得します。

しかし、私がしようとすると:

$(document).ready(function () {
    $('#btntst').click(function () {
        $('#mainDiv').html('wait for data');
        $.ajax({
            type: 'POST',
            url: '_layouts/GridView/ApplicationPage1.aspx/getTable',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: "{}",
            success: function (msg) {
                $('#jsTreeContainer').jstree({
                    "json_data": {
                        "data": [msg.d]
                    }
                    , "plugins": ["themes", "json_data"]
                });
            }
            , timeout: 60000
        });
    });

});

すべての JSON 文字列を含むノードを 1 つだけ取得します。
webmethod によって返される JSON 文字列は次のとおりです。

{
  'data': 'department001',
  'attr': {
    'id': 'nodeid1773'
  },
  'children': [

  ]
},
{
  'data': 'department001',
  'attr': {
    'id': 'nodeid1779'
  },
  'children': [

  ]
}

この文字列を次の場所にコピー アンド ペーストすると:

"json_data": {"data" : [...] }

正しい結果が得られます。助けてください、私が間違っていることを理解できません。

4

1 に答える 1

1

スクリプトは型の JSON オブジェクトを探していますjson_dataが、通常の応答は のみdataです。これらの変更が機能するかどうかを確認します。

$(document).ready(function () {
    $('#btntst').click(function () {
        $('#mainDiv').html('wait for data');
        $.ajax({
            type: 'POST',
            url: '_layouts/GridView/ApplicationPage1.aspx/getTable',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: "{}",
            success: function (msg) {
                $('#jsTreeContainer').jstree({
                    "json_data": [msg.d],
                    "plugins": ["themes", "json_data"]
                });
            }
            , timeout: 60000
        });
    });

});
于 2013-07-19T10:56:21.530 に答える