0

データソースを json_data に変換する際に問題があります。これが私のコードです:

私のdefault.aspx.csでは:

[WebMethod]
public string GetJson()
{
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    Dictionary<string, object> row = null;

    DataTable dtEmployee = new DataTable();

    dtEmployee.Columns.Add("EmpId", typeof(int));
    dtEmployee.Columns.Add("Name", typeof(string));
    dtEmployee.Columns.Add("Address", typeof(string));
    dtEmployee.Columns.Add("Date", typeof(DateTime));

    //
    // Here we add five DataRows.
    //
    dtEmployee.Rows.Add(25, "Rk", "Gurgaon", DateTime.Now);
    dtEmployee.Rows.Add(50, "Sachin", "Noida", DateTime.Now);
    dtEmployee.Rows.Add(10, "Nitin", "Noida", DateTime.Now);
    dtEmployee.Rows.Add(21, "Aditya", "Meerut", DateTime.Now);
    dtEmployee.Rows.Add(100, "Mohan", "Banglore", DateTime.Now);

    foreach (DataRow dr in dtEmployee.Rows)
    {
        row = new Dictionary<string, object>();
        foreach (DataColumn col in dtEmployee.Columns)
        {
            row.Add(col.ColumnName, dr[col]);
        }
        rows.Add(row);
    }
    return serializer.Serialize(rows);
}      

そして、ここに私の default.apsx ページがあります:

var data2 = { };
    function GetJsonData(callback) {

        $.ajax({
                    type: "POST",
                    async: true,
                    url: "Default.aspx/GetJson",
                    //contentType: "application/json; charset=utf-8",
                    //data: '{name:""}',
                    dataType: "json",
                    cache: false,
                    success: function(msg) {
                        callback(msg);
                    },
                    error: function(err) {
                        alert('error');
                    }
                });
    }
    data2 = GetJsonData();
    $(function() {
        $("#MainTree,#SubTree").jstree({
            "json_data": {
                "data": data2,
            },
            "plugins": ["themes", "json_data", "ui", "dnd"]
        });
    });

「データ」を非表示にすると、もちろんノードは作成されません。しかし今、default.aspx.cs からメソッド GetJson を呼び出して、データソースから json_data を取得したいと考えています。常に「..Loading」と表示されます..私はjsTreeと.net Framework 2.0だけを使用しています..これの解決策を見つけるのを手伝ってください..ありがとう

4

2 に答える 2

0

ファイル名を変更することに加えて(@Alex Filipoviciが述べたように)、メソッドはstatic.

[WebMethod]
public static string GetJson()
{
}

編集:::

これは私がやったことであり、結果が返されました:

 $(document).ready(function () {

            $("[id$=_btnPostReminder]").click(function () {
                var a = "";
                var remindertext = "";
                var re = "";
                var res = "";
                $.ajax({
                    type: "POST",
                    url: "Default.aspx/GetJson",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success:
        function Ret(response) {
            var Result = response.d
            alert(Result)

            return false;
        },
                    error: function (data, status, jqXHR) {
                        alert(jqXHR);
                    }
                });
                return false;
            });
        });
于 2013-07-04T09:49:11.110 に答える