我是新来的,所以请提前将我用于冗长的问题。我是SP2010的新手,到目前为止,接下来的教程将JQuery Ajax调用到我的SP列表中:Who Needs a Data View Web Part? SharePoint REST and DataTables.net一个Datatables.net表与来自Sharepoint 2010的多个ajax调用REST API
我的(和每个人)的问题是,SP2010 listdata.svc只返回前1000个条目JSON。然而,本教程提出了一种预过滤方法来调用用户需要的数据,在我的情况下,我想将所有200多个条目加载到表中,然后让用户选择/过滤他/她要。
我设法做出两个Ajax调用(其中一个具有前1000个条目,另一个具有2000以上的其他 - 用于测试,以便于查看,其中哪些调入表),以及在调试器中,GET请求都会返回并返回状态200-OK,并且数据,但只有其中一个被加载到表中。
问题:是否有任何方法传递到DataTable之前返回jqXHR响应合并,或者是有任何的设置,该表初始化之后,第二个数据不会覆盖的第一个?我知道,多数Ajax调用对大多数人来说都是“不行”,但就我而言,由于服务器的速度和表的使用频率,这并不是问题,但到目前为止,我找到了解决方案多个调用来填充多个表的主题。
我迄今为止代码:
<script type="text/javascript">
function LoadData()
{
var call = $.ajax({
url: "https://SP2010_siteaddress.com/site/_vti_bin/listdata.svc/Listname?$select=Data1,Data2,Data3,Data4,Data5",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
\t \t
var call2 = $.ajax({
url: "https://SP2010_siteaddress.com/site/_vti_bin/listdata.svc/Listname?$select=Data1,Data2,Data3,Data4,Data5&$skiptoken=2000",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
\t \t
(call, call2).done(function (data,textStatus, jqXHR){
\t $('#example')
\t \t \t \t \t .on('xhr.dt', function (e, settings, json) {
\t \t \t \t \t for (var i=0, ien=json.aaData.length ; i<ien ; i++) {
\t \t \t \t \t json.aaData[i].sum = json.aaData[i].one + json.aaData[i].two;
\t \t \t \t \t }
\t \t \t \t \t // Note no return - manipulate the data directly in the JSON object.
\t \t \t \t \t })
\t \t \t \t .dataTable({
\t \t \t \t \t ajax: "data.json",
\t "bServerside" : true,
\t \t \t \t \t \t "bProcessing": false,
\t \t \t \t \t \t "aaData": data.d.results,
\t \t \t \t \t \t "aoColumns": [
\t \t \t \t \t \t \t { "mData": "Data1" },
\t \t \t \t \t \t \t { "mData": "Data2" },
\t \t \t \t \t \t \t { "mData": "Data3" },
\t \t \t \t \t \t \t { "mData": "Data4" },
\t \t \t \t \t \t \t { "mData": "Data5" }
\t \t \t \t \t \t \t ],
\t \t \t \t \t \t \t "bRetrieve": true,
\t \t \t \t // \t "initComplete": function(settings, json) {
\t \t \t \t // \t alert('DataTables has finished its initialisation.');
\t \t \t \t // \t \t \t }
\t \t \t \t \t \t \t });
\t \t \t call.fail(function (jqXHR,textStatus,errorThrown){
alert("Error retrieving Tasks: " + jqXHR.responseText);
});
});
}
</script>
在此先感谢任何建议,就如何解决这个。
谢谢,$然后是其中一个选项,我也试过了,但也许我不明白它足以让它工作并将其删除。将检查,并让你知道结果。 – Beavis
谢谢你,作品像一个魅力。 – Beavis