0
         this.$('#tblRoles').dataTable({
                    "bAutoWidth": true,
                    "aoColumns": [
                        { "mDataProp": "Code", },
                        { "mDataProp": "Title", }
                    ],
                    "bServerSide": true,
                    "sAjaxSource": '/FunzHouse/Roles.aspx/Menu',
                    "fnServerData": function (sSource, aoData, fnCallback) {
                        $.ajax({
                            "dataType": 'json',
                            "type": "POST",
                            "contentType": "application/json; charset=utf-8",
                            "url": sSource,
                            "data": '',
                            "success":
                            function (data) {
                                fnCallback(JSON.stringify(data.d));
                            }
                        });
                    }
                });

ブラウザでデータが正しく返されるのを確認しましたが、jquery データテーブルに入力できないのはなぜですか? 以下のようなデータ例 [{"Code":"0000","Title":"Home"},{"Code":"1000","Title":"Profiles management"}]"

data:
Object {d: Array[2]}
 d: Array[2]
  0: Object
  1: Object
}

data.d: [オブジェクト、オブジェクト]

更新 1:

this.$('#tblRoles').dataTable({
                    "bAutoWidth": true,
                    "bServerSide": true,
                    "aoColumns": [
                        {
                            "sTitle": "test", "mDataProp": "Code"
                        },
                        {
                            "sTitle": "test", "mDataProp": "Title"
                        }
                    ],
                    "sAjaxSource": '/FunzHouse/Roles.aspx/Menu',
                    "fnServerData": function (sSource, aoData, fnCallback) {
                        $.ajax({
                            "dataType": 'json',
                            "type": "POST",
                            "contentType": "application/json; charset=utf-8",
                            "url": sSource,
                            "data": '',
                            "success":
                            function (data) {
                                debugger;
                                var feed = JSON.parse(JSON.stringify(data.d));
                                fnCallback(_.flatten(feed));
                            }
                        });
                    }
                });

なぜそれがまだ機能していないのかわからない、長さが未定義になり続ける、実際に私が間違っていることは何ですか?

更新 2: わかりました、sAjax を使用しない別の方法を変更しました。

 generateMenu: function () {
            var that = this;
            var _RolesMenu = new RolesMenu();
            _RolesMenu.fetch({
                type: "POST",
                data: '',
                contentType: "application/json; charset=UTF-8",
                success: function (Menu) {
                    that.appendMenu(Menu);
                }
            });
        },
 appendMenu: function (data) {
            var that = this;

            var feed = JSON.parse(JSON.stringify(data));
            var oTable = $('#tblRoles').dataTable({
                "bDestroy": true,
                "bAutoWidth": true,
                "aoColumns": [
                    { "sTitle": "Code", "mDataProp": "Code", },
                    { "sTitle": "Title", "mDataProp": "Title", },
                ],
                sAjaxSource: "",
                sAjaxDataProp: "",
                fnServerData: function (sSource, aoData, fnCallback) {
                    fnCallback(_.flatten(feed[0]));
                },
            });
        },
4

0 に答える 0