我创建了一个使用Ajax Call获取数据并将其填充到数据表UI的代码。
我的代码如下:
jQuery.ajax(
{
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists/GetByTitle('Events')/items?$select=Title,Session_x0020_Room,Session_x0020_Date,StartTime,EndTime,Duties,OnsiteContactEmail",
type: "GET",
headers: { "Accept": "application/json;odata=verbose" },
dataType: "json",
success: function (data, textStatus, xhr) {
if (data.d.results.length > 0) {
var resColl = data.d.results;
var strData= new Array();
for(var i=0; i < resColl.length; i++){
var arr = new Array();
arr.push(resColl[i].Title);
arr.push(resColl[i].Session_x0020_Room);
strData[i] = JSON.stringify(arr);
}
$('#example').DataTable({
data:strData,
columns: [
{ title: "Event" },
{ title: "Room" }
]
});
}
},
error: function (data, textStatus, xhr) {
console.error("Error while getting the data from Events list");
}
});
在strData
对象中,我得到了这个值:&#34; [&#34;亚洲女性在计算机&#34;,&#34;第1和第34室;]&#34;
但是在HTML表中我没有得到正确的输出。
我错过了什么?
答案 0 :(得分:1)
我假设DataTable
期望存在字符串的数组数组。您有一个JSON字符串数组,因为您将数组arr
转换为JSON字符串并将其推送到strData
,DataTable
稍后将使用该字符串。
var resColl = data.d.results;
var strData= new Array();
for(var i=0; i < resColl.length; i++){
var arr = new Array();
arr.push(resColl[i].Title);
arr.push(resColl[i].Session_x0020_Room);
strData[i] = arr;
}
不要将arr
转换为JSON字符串,它应该打印正常。