为 ECMAScript 设置应用程序页
上次修改时间: 2011年6月20日
适用范围: SharePoint Foundation 2010
可以在 .aspx 页上的脚本块中包含使用 ECMAScript(JavaScript、JScript) 对象模型的自定义代码,也可以创建单独的 .js 文件以包含您的代码并在 .aspx 页面中引用该文件。下面的示例假定您在 Microsoft Visual Studio 2010 中创建了具有应用程序页面的 SharePoint Foundation 项目,为 SharePoint 创建应用程序页面中有相关说明。Visual Studio 在 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS 中创建应用程序页面。
若要在 Visual Studio 代码编辑器中为 SP 命名空间获取 IntelliSense,请添加引用 SharePoint Foundation .js 文件的 <script> 标记,这些文件安装在 \LAYOUTS 目录中。请包含对 SP.Core.Debug.js、SP.Debug.js 和 SP.Runtime.Debug.js 的引用,如在示例中所示。
重要信息 |
---|
在 Microsoft Visual Studio 2010 中,您添加的 <script> 标记是设计时组件,用于为 SharePoint Foundation 客户端对象模型提供 IntelliSense,但是要构建项目,必须注释掉 <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>
有关 SharePoint Foundation 安装中附带的 debug.js 文件的信息,请参阅客户端对象模型分发和部署。