您好我有一个SharePoint内容编辑器Web部件,其中包含用户选择项目的下拉列表。选择仅填充列表中的前100个项目我希望它填充列表中的500多个项目。
谢谢
<script>
$(document).ready(function () {
partnumDrpDownBind();
});
function partnumDrpDownBind() {
var listName = "Spec_ID_ABS_Primary";
var url = _spPageContextInfo.webAbsoluteUrl;
getListItems(listName, url, function (data) {
var items = data.d.results;
var inputElement = '<select id="drpspecs"> <class="form-control"> <option value="">Select</option>';
// Add all the new items
for (var i = 0; i < items.length; i++) {
var itemId = items[i].Title,
itemVal = items[i].Title;
inputElement += '<option value="' + itemId + '"selected>' + itemId + '</option>';
}
inputElement += '</select>';
$('#partnumdrp').append(inputElement);
$("#drpspecs").each(function () {
$('option', this).each(function () {
if ($(this).text() == 'Select') {
$(this).attr('selected', 'selected')
};
});
});
// assign the change event to provide an alert of the selected option value
// $('#drpspecs').on('change', function () {
// alert($(this).val());
// });
}, function (data) {
alert("Ooops, an error occured. Please try again");
});
}
function getListItems(listName, siteurl, success, failure) {
$.ajax({
url: siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items?$orderby=Title asc",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
success(data);
},
error: function (data) {
failure(data);
}
});
}
答案 0 :(得分:0)
SharePoint ODATA REST模型默认将返回项限制为100。您可以通过添加$ top查询运算符来覆盖该限制。这是为了防止系统陷入困境。
// change the url: property of your ajax to this.
$.ajax({
url: siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items?$top=500&$orderby=Title asc",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
success(data);
},
error: function (data) {
failure(data);
}
});
小心点。如果你回到很多项目,它会减慢速度。
MS开发中心资源。 Use OData query operations in SharePoint REST requests
SharePoint Stack Exchange资源。 ajax rest only returning 100 items instead of full list