Про SharePoint 2010 Client Side Object Model (CSOM) уже написано и съедено немало.
Я лишь постараюсь каснуться вопроса применения Javascript для работы с CSOM на ASPX-странице, расположенной в библиотеке на портале SharePoint (Site page).
<%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Напишем простой метод, в котором реализуем отображение логина текущего пользователя.
В итоге исходный код страницы принимает вид:
Пример страницы можно загрузить отсюда.
Я лишь постараюсь каснуться вопроса применения Javascript для работы с CSOM на ASPX-странице, расположенной в библиотеке на портале SharePoint (Site page).
Создание новой aspx-страницы в SharePoint Designer 2010
Для начала нам потребуется создать пустую aspx-страницу без мастерпейджа. Для этого открываем SharePoint Designer 2010, выбираем нужную библиотеку, в которой наша страница будет расположена (например "Страницы сайта), и через ленту добавляем новую страницу, как показано на рисунке ниже. Отмечу, что страница уже будет содержать минимальную html-разметку.
Дополнительная разметка
В начало страницы нам также нужно добавить секции Import и Register:<%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Минимальный набор js-файлов для работы с CSOM
В заголовок страницы нужно добавить самый главный файл - "core.js":
<SharePoint:ScriptLink ID="ScriptLink1" Language="javascript" Name="core.js" OnDemand="true" runat="server"/>Далее в заголовок добавляем ссылки на остальные js-файлы для корректной работы CSOM:
<script type="text/javascript" src="/_layouts/MicrosoftAjax.js"></script> <script type="text/javascript" src="/_layouts/sp.core.debug.js"></script> <script type="text/javascript" src="/_layouts/sp.runtime.debug.js"></script> <script type="text/javascript" src="/_layouts/sp.debug.js"></script>
Напишем простой метод, в котором реализуем отображение логина текущего пользователя.
<script type="text/javascript"> var currentUser; function getWebProperties() { var userContext1 = new SP.ClientContext.get_current(); currentUser = userContext1.get_web().get_currentUser(); userContext1.load(currentUser); userContext1.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFail)); } function onSuccess(sender, args) { alert('current user: ' + currentUser.get_loginName().toLowerCase()); } function onFail(sender, args) { alert('failed to current user. Error: ' + args.get_message()); } </script>
В итоге исходный код страницы принимает вид:
Результат
После сохранения страницы открываем её в веб-браузере и видим пустую страницу с кнопкой "Get user".
Нажимаем на кнопку и видим сообщение, отображающее логин текущего пользователя!
Нажимаем на кнопку и видим сообщение, отображающее логин текущего пользователя!