JavaScript からいろいろ操作もできるらしい。
大前提
htmlのheadタグ
以下を追加する。
| 1 2 3 | <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script> <script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script> <script type="text/javascript" src="/_layouts/15/sp.js"></script> | 
※外部に接続できない場合は、MicrosoftAjax.js を _layouts 以下に置いてそれを指定させるよう変更する。
JavaScript
以下のようにして、sp.js ロード後に処理を実行させるよう記述する。
| 1 2 3 4 5 6 7 8 9 10 | $(function () {     // SharePoint 2010     // ExecuteOrDelayUntilScriptLoaded(hoge, "sp.js");     // SharePoint 2013     SP.SOD.executeFunc("sp.js", "SP.ClientContext", hoge); }); function hoge() {     ... } | 
データの検索の例
注意点
- CAMLは<View>...</View>で囲って使用する。
- DateTime型の値の取得時は日付をフォーマットしてやること。
- SP.ClientContext.executeQueryAsyncメソッドを使用する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | function hoge() {     var spContext = new SP.ClientContext.get_current();     var web = spContext.get_web();     // 検索対象のカスタムリスト取得     var list = web.get_lists().getByTitle("カスタムリスト名");     // CAMLを作成     var caml = getCaml();     // CAMLを設定     var camlQuery = new SP.CamlQuery();     camlQuery.set_viewXml(caml);     this.colListItem = list.getItems(camlQuery);     spContext.load(colListItem);     spContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); } // CAML作成処理 function getCaml() {     // CAMLを作成して返却     return "<View><Query>...</Query></View>"; } // 検索成功時処理 function onQuerySucceeded(sender, args) {     var listCount = colListItem.get_count();     if (listCount < 1) {         // データなし時の処理         alert("ねーよ");         return;     }     var listItemEnumerator = colListItem.getEnumerator();     while (listItemEnumerator.moveNext()) {         var item = listItemEnumerator.get_current();         var aaa      = item.get_item("XXX");         var bbbDate  = item.get_item("YYYDate");         if (bbbDate != null) {             bbbDate  = bbbDate.format("yyyy/MM/dd");         }         // http://domain/subsite/Lists/listname/AllItems.aspx で一覧を表示できるカスタムリストの場合         // "/subsite/Lists/listname" が取れる         var fileDirRef = item.get_item("FileDirRef");         var id         = item.get_item("ID");         var linkUrl    = "http://" + document.domain + fileDirRef + "/DispForm.aspx?ID=" + id;         // 処理など     } } /**  * 検索失敗時処理  * @param sender イベントを発生したオブジェクト  * @param args 発生したイベントに関する情報  */ function onQueryFailed(sender, args) {     alert("失敗だよ"); } | 
