gpt4 book ai didi

javascript - 如何获取 jQuery DataTable 中的下一次数据加载

转载 作者:行者123 更新时间:2023-11-28 06:58:39 24 4
gpt4 key购买 nike

我正在 jQuery DataTables 中显示 SharePoint 数据。总行数约为 2000,但我在第一次加载时仅显示 100。

加载页面后,数据会正确显示。因此,我想获取数据表中的下一个数据负载,但我不知道如何做到这一点。

我想过使用 bServerSideiDeferLoading 但这些给我带来了错误,例如 json 格式不正确

下面是我目前正在测试的代码。 谁能告诉我如何获得其余结果?当用户到达 100 行末尾时如何实现分页?

为什么 bServerSideiDeferLoading 在我的情况下不起作用?

我在使用 jQuery 和 REST 回发到 SharePoint 时遇到了同样的问题。

 $(document).ready(function () {
window.StartTime = new Date();
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {
SP.SOD.executeFunc('sp.search.js', 'Microsoft.SharePoint.Client.Search.Query.KeywordQuery', function () {
var queryText = "ContentTypeId:0x010066FA3DE3E334C841B418C82CC475A227*";
var clientContext = new SP.ClientContext.get_current();
var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(clientContext);
keywordQuery.set_queryText(queryText);
keywordQuery.set_rowLimit(50);
keywordQuery.set_trimDuplicates(false);
var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(clientContext);
var results = searchExecutor.executeQuery(keywordQuery);
clientContext.executeQueryAsync(onQuerySuccess, onQueryError);

function onQuerySuccess() {

var rows = results.m_value.ResultTables[0].ResultRows;
var totalRows = results.m_value.ResultTables[0].TotalRows;

$("#example").DataTable({

"bDestory":true,
"bProcessing":true,
//"bServerSide": true,
"iTotalRecords":totalRows,
"iTotalDisplayRecords":10,
"iDeferLoading": totalRows,
"aaData":rows,
"aoColumns":[
{"mData":"Title"},
{"mData":"Path"}
]
});
console.log("After added to table: " + ((new Date() - window.StartTime) / (60 * 60)) + " seconds");

}

function onQueryError(sender, args) {
alert("call failed. Error: " + args.get_message());
}
});
});

});

这是当我使用 bServerSideiDeferLoading 时单击 NEXT 或下拉列表时的 header 响应(显然,Content-Type 返回为text/html):

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
X-SharePointHealthScore: 0
X-AspNet-Version: 4.0.30319
SPRequestGuid: 6fc9299d-cba4-c06b-92ee-423504bab93b
request-id: 6fc9299d-cba4-c06b-92ee-423504bab93b
X-FRAME-OPTIONS: SAMEORIGIN
SPRequestDuration: 84
SPIisLatency: 1
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 15.0.0.4569
X-Content-Type-Options: nosniff
X-MS-InvokeApp: 1; RequireReadOnly
Date: Tue, 01 Sep 2015 19:37:35 GMT
Content-Length: 23942

如何强制它返回 JSON 格式的数据?

最佳答案

选项 bServerSide 不适合您,因为响应中的数据必须以某种方式构建,请参阅 Server-side processing (对于 DataTables 1.9)或 Server-side processing (适用于 DataTables 1.10)。

如果此行 keywordQuery.set_rowLimit(50); 限制结果数量,我会删除它并让 DataTable 进行过滤、排序和分页。

同时删除 DataTables 初始化代码中无效或不相关的选项,使其看起来像:

var rows = results.m_value.ResultTables[0].ResultRows;

$("#example").DataTable({
"aaData":rows,
"aoColumns":[
{"mData":"Title"},
{"mData":"Path"}
]
});

关于javascript - 如何获取 jQuery DataTable 中的下一次数据加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com