ECMAScript を使用するアプリケーション ページをセットアップする
最終更新日: 2011年6月20日
適用対象: SharePoint Foundation 2010
ECMAScript (JavaScript、JScript) オブジェクト モデルを使用するカスタム コードを .aspx ページのスクリプト ブロックに追加できます。また, .js ファイルを別に作成してコードを追加し、これを .aspx ページから参照することもできます。次の例では、「SharePoint のアプリケーション ページの作成」で説明されているように、Microsoft Visual Studio 2010 のアプリケーション ページで SharePoint Foundation プロジェクトが作成されていることを前提としています。Visual Studio では、アプリケーション ページは %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS に作成されます。
Visual Studio コード エディターで SP 名前空間の IntelliSense を取得するには、\LAYOUTS にインストールされている SharePoint Foundation .js ファイルを参照する <script> タグを追加します。この例で示すように、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 のインストールに含まれるデバッグ .js ファイルについては、「クライアント オブジェクト モデルの配布と展開」を参照してください。