مقدمه
شیرپوینت 2013 خدمات REST در دسترس توسعه دهندگان را بسیار گسترش داده است. با این کار، ما عملکردهای شیرپوینت بسیار بیشتری را از طریق CSOM و خدمات وب در معرض دید داریم. همچنین، تمام سرویسهای REST جدید در شیرپوینت 2013 هستند. شیرپوینت 2013 توانست به من یک API REST ارائه دهد، من میتوانم با درخواستهای jQuery ajax تماس بگیرم و این دقیقاً همان چیزی بود که میخواستم.
خدمات REST-مرور اجمالی سطح بالا
بیایید با دستورات دریافت اولیه خود در REST شروع کنیم. در زیر لیستی از دستورات اساسی مورد استفاده برای دریافت لیست آیتم ها از یک لیست شیرپوینت با استفاده از خدمات SharePoint 2013 REST آورده شده است.
تصور کنید
در مثالم، من به یک لیست سفارشی (کشورها) دسترسی دارم و نتیجه را به یک کشویی پویا متصل می کنم. من بر اساس یک ستون فقط در صعود مرتب شده ام. استفاده از REST API شیرپوینت به ما امکان می دهد این فیلترها را به درخواست خود اضافه کنیم. نتایج بهعنوان یک شی JSON به ما داده میشود که سپس میتوانیم آن را حلقه بزنیم و در زمان اجرا کشویی قرار دهیم. من همچنین از یک الگوی مدولار برای ساختار کدم استفاده کردم. ما می توانیم درخواست REST خود را ایجاد کنیم. _spPageContextInfo یک شی شیرپوینت است که اطلاعات مفیدی در مورد صفحه و سایتی که در آن قرار داریم، از جمله URL اصلی سایتمان را به ما می دهد.
پس از دریافت موفقیت آمیز اطلاعات لیست خود، فقط باید داده های خود را حلقه بزنیم، آن ها را در یک کشویی قرار داده و سپس در عنصر ظرف از پیش تعریف شده خود وارد کنیم. jQuery کمک می کند تا این فرآیند آسان شود.
بیایید
مرحله 1 را ادامه دهیم: به سایت شیرپوینت 2013 خود بروید.
مرحله 2: از این صفحه Site Actions | را انتخاب کنید ویرایش صفحه.
صفحه را ویرایش کنید، به تب "Insert" در نوار روبان بروید و روی گزینه "Web Part" کلیک کنید. در قسمت انتخابگر «قطعات وب»، به دسته «رسانه و محتوا» بروید، بخش وب «ویرایشگر اسکریپت» را انتخاب کنید و دکمه «افزودن» را فشار دهید.
مرحله 3: هنگامی که بخش وب در صفحه درج شد، پیوند "EDIT SNIPPET" را مشاهده خواهید کرد. روی آن کلیک کنید. میتوانید HTML و/یا جاوا اسکریپت را به صورت زیر وارد کنید:
- <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.1.min.js"></script>
- <script>
- $(document).ready(function () {
- countriesDrpDownBind();
- });
- function countriesDrpDownBind() {
- var listName = "countries";
- var url = _spPageContextInfo.webAbsoluteUrl;
- getListItems(listName, url, function (data) {
- var items = data.d.results;
- var inputElement = '<select id="drpcountries"> <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>';
- $('#divisiondrp').append(inputElement);
- $("#drpcountries").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
- $('#drpcountries').on('change', function () {
- alert($(this).val());
- });
- }, function (data) {
- alert("Ooops, an error occured. Please try again");
- });
- }
- // READ operation
- // listName: The name of the list you want to get items from
- // siteurl: The url of the site that the list is in.
- // success: The function to execute if the call is sucesfull
- // failure: The function to execute if the call fails
- 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);
- }
- });
- }
- </script>
- Division
- <div id="divisiondrp"></div>
در نهایت نتیجه به صورت زیر به نظر می رسد: