SharePoint Online - Javascript将所有列表项目放入选择下拉列表中

时间:2017-09-11 15:16:52

标签: javascript sharepoint-online

您好我有一个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);  
                  }  
              });  
          }  

1 个答案:

答案 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