ホームページ > ウェブフロントエンド > jsチュートリアル > SharePoint クライアント オブジェクト モデル (1) ECMA Script_javascript スキル

SharePoint クライアント オブジェクト モデル (1) ECMA Script_javascript スキル

WBOY
リリース: 2016-05-16 18:06:39
オリジナル
1013 人が閲覧しました

所谓的客户端对象模型就是调用了背后的WCF服务来提供数据,为了减轻数据的访问量数据包使用JSON,我们还可以看到对象模型的设计也加入了诸多对于减轻数据访问量的考量。技术上没有什么新意,你要愿意,在SharePoint2007里面也可以实现类似的功能,当然在使用上方便了我们不少

image 
三种使用客户端模型的.NET托管、ECMA脚本,SilverLightClient.

image

本文讲阐述如何使用.NET托管代码来访问SharePoint对象模型。

ECMAScript Client OM需要注意的几个点

  • ECMAScript仅能够在SharePoint站点里面使用,不能够在其他的Asp.NET站点里使用ECMAScript来访问SharePoint站点资源,也不能够跨SharePoint站点访问资源;
  • JQuery和ECMAScript使用起来不会有冲突;
  • 为了安全的更新内容,在使用ECMAScript的画面里添加
  • 在随后你将会看到的代码里为了减轻加载的数据量,可以指定需要加载的内容,例如client.Context.load(this.web,'Title','Id','Created'), 这里的属性值名称使用和CAML一样的体系,对大小写敏感;
  • 为确保你的代码执行在SP.JS加载完之后再被调用,可以使用ExecuteOrDelayUntilScriptLoaded(myjsFunction, “sp.js”)。

我们看看SharePoint OM和客户端OM的一个简单的匹配关系:

服务器端OM 客户端OM
SPContext ClientContext
SPSite Site
SPWeb Web
SPList List
SPListItem ListItem
SPField Field

次の図は暫定的に計画された機能で、主にリストの作成、クエリ、管理を設計します。重要なファイルがあれば、それらも徐々に追加されます。将来的に追加されます。

image

内部のリンクは UI Javascript インターフェイスを呼び出して、SharePoint2010 スタイルのポップアップ ウィンドウを作成します。ポップアップ ウィンドウの背景ページは、SitePage ドキュメント ライブラリにある場合にのみ適用されることに注意してください。 WebPart ページが開かれていない場合は、「ID: "Ribbon.Read" のリボン タブがこのページで使用できないか、存在しません」というエラーが報告されます。

(このページは今後使用されないことに注意してください。リボンの使用方法を説明するためだけにここに残されています)

リストを作成します:

まず、デザイナーを使用して、次の 2 つのスクリプト リンクを追加します。


ECMAScriptOM と .NET Managed ClientOM (後で説明します) の目的は同じですが、注意すべき点がいくつかあります。

    サーバー側 URL は ClientContext では使用できません。
  1. LINQ はサポートされていません。
  2. 本質的に ECMAScript OM は非同期です
コードは非常にシンプルで理解しやすいもので、SP.UI.Notify.addNotification というクラスを通じて、SharePoint のようにプロンプ​​ト メッセージを呼び出し画面に表示できます。

image

実証結果は以下の通りです:

テキストボックスにリスト名を入力した後、「リストの作成」ボタンをクリックすると、リストが生成され、右上隅に「リストtest1が作成されました」というメッセージが表示されます。リストタイプ。

image

ソース コードは次のとおりです:


コードをコピーします コードは次のとおりです:


すべてのリストを取得:

同様に、最初に効果を確認します。[すべてのリストを取得] ボタンをクリックして現在のサイトのすべてのリストを読み取り、対応するハイパーリンク属性を設定します。[リストを非表示] ボタンをクリックして非表示にします。ディビジョン)

image

コードは非常に簡単で、getEnumerator() や moveNexst()、get_current() などの JavaScript 関数の使用がコレクションを走査するための優れた方法であるという 1 つの点だけを説明しています。

ソース コード:

コードをコピー コードは次のとおりです。

function getLists( ){
var clientContext = new SP.ClientContext();
var oWebSite = clientContext.get_web();
clientContext.load(listCollection); >clientContext.executeQueryAsync(Function.createDelegate(this, this.onGetListsSucceeded), Function.createDelegate(this, this.onGetListsFailed)); 🎜>var listsEnumerator = listCollection.getEnumerator();
while(listsEnumerator.moveNext()){
var objList = listsEnumerator.get_current();
str = "" objList.get_title() "" "
";
}
ドキュメント。 getElementById(" リスト").innerHTML = str;
}
function onGetListsFailed(sender, args){
alert('リクエストが失敗しました。' args.get_message() 'n' args.get_stackTrace()) ;
}





CAML クエリ:

クエリには 2 つの方法があり、1 つは DueDate によるもの、もう 1 つはタイトルによるものです。もちろん、関数はよりユーザーフレンドリーになるように設計でき、デモでは過度のレンダリングは行われません。 [検索] をクリックしてデータをクエリします。 コントロールを使用するときに日付を選択すると、ページがポストバックされます。

カレンダー コントロールを別のページに配置し、次のコードを追加します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート