Настройка страницы приложения для 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, см. в статье Распространение и развертывание клиентской объектной модели.