Поделиться через


Настройка страницы приложения для ECMAScript

Дата последнего изменения: 20 июня 2011 г.

Применимо к: SharePoint Foundation 2010

Доступно на сайте SharePoint Online

Можно включить пользовательский код, использующий объектную модель ECMAScript (JavaScript, JScript) в блоке скрипта на ASPX-странице, или можно создать отдельный JS-файл для включения кода, на который можно ссылаться с ASPX-страницы. В следующем примере предполагается, что проект SharePoint Foundation создан со страницей приложения в Microsoft Visual Studio 2010, как описано в статье, посвященной созданию страниц приложения для SharePoint. Visual Studio создает страницу приложения в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS.

Чтобы получить возможность использования технологии IntelliSense для пространства имен SP в редакторе кода Visual Studio, добавьте теги <script>, которые ссылаются на JS-файлы SharePoint Foundation, установленные в каталог \LAYOUTS. Включите ссылки на SP.Core.Debug.js, SP.Debug.js и SP.Runtime.Debug.js, как показано в примере.

Важное примечаниеВажно!

В Microsoft Visual Studio 2010 добавляемые теги <script> — это компонент времени разработки, который используется для предоставления технологии IntelliSense для клиентской объектной модели SharePoint Foundation, но для построения проекта следует закомментировать теги <script>. Кроме того, требуется протестировать страницу на сервере, чтобы убедиться, что она не содержит ошибок.

При написании кода, который изменяет данные SharePoint Foundation, включите элемент управления FormDigest для создания дайджеста для проверки безопасности на странице.

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ 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" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestServerOM1.aspx.cs" 
  Inherits="TestServerOM1.Layouts.TestServerOM1.TestServerOM1" DynamicMasterPageFile="~masterurl/default.master" %>

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">

<script type="text/ecmascript" src="/_layouts/SP.Core.js" />
<script type="text/ecmascript" src="/_layouts/SP.Debug.js" />
<script type="text/ecmascript" src="/_layouts/SP.Runtime.Debug.js" />

<script language="ecmascript" type="text/ecmascript">

          function onQuerySucceeded(sender, args) {
              alert('Title: ' + this.oWebsite.get_title() + ' Decription: ' + this.oWebsite.get_description());
          }

          function onQueryFailed(sender, args) {
              alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());
          }

          function retrieveWebSite() {
              var clientContext = new SP.ClientContext.get_current();
              this.oWebsite = clientContext.get_web();
              clientContext.load(this.oWebsite);
              clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
          }
      </script>
</asp:Content>

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">

    <SharePoint:FormDigest ID="FormDigest1" runat="server"></SharePoint:FormDigest>

    <input id="Button1" runat="server" Text="Retrieve Web Site" OnClick="retrieveWebSite()" />
  
</asp:Content>

<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
Application Page
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
My Application Page
</asp:Content>

Дополнительные сведения о JS-файлах отладки, включенных в установку SharePoint Foundation, см. в статье Распространение и развертывание клиентской объектной модели.

См. также

Концепции

Работа с веб-сайтами

Обзор извлечения данных

Общие задачи программирования

Другие ресурсы

Библиотека классов для клиента

Библиотека классов ECMAScript