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