2016-05-03 30 views
0

一般に、SharePointサーバーオブジェクトモデルからデータを取得しています。しかし、JSOMを使ってSharePoint Listからデータを収集する必要があります。JSOMを使用してSharePointリストからデータを取得する方法は?

私の要件は以下の通りです:

3列ID、タイトルとのList1と呼ばれるリストがあり、ステータス

私はステータス1とTitle =「マイ指定されたタイトル」であるすべてのそれらのデータを取得する必要があります

JSOMを使用して解決策を提供してください。

答えて

1

ドキュメントhereは、JavaScriptオブジェクトモデルを非常によく説明しています。

本来、ClientContextオブジェクトを作成し、それを使用して実行する命令を指定する必要があります。 ClientContext.load()を使用して、取り出される情報を取り込むオブジェクトを指定し、次にClientContext.executeQueryAsync()を使用して、キューに入れられた命令を実行します。 executeQueryAsyncに提供するコールバック関数のコンテキスト内では、クエリの結果にアクセスできます。

以下の例は、典型的なアプローチを示しています。

<script> 
ExecuteOrDelayUntilScriptLoaded(getListItems,"sp.js"); 
function getListItems(){ 
    var clientContext = new SP.ClientContext(); 
    var list = clientContext.get_web().get_lists().getByTitle("List1"); 
    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml(/* build a CAML query to retrieve your items */ 
     "<View><Query>" + 
     "<Where>" + 
      "<And>" + 
       "<Eq><FieldRef Name=\"Status\"/><Value Type=\"Text\">1</Value></Eq>" + 
       "<Eq><FieldRef Name=\"Title\"/><Value Type=\"Text\">My given title</Value></Eq>" + 
      "</And>"+ 
     "</Where>" + 
     "</Query></View>"); 
    var items = list.getItems(camlQuery); 
    clientContext.load(items); 
    clientContext.executeQueryAsync(function(){ 
     var itemArray = []; 
     var itemEnumerator = items.getEnumerator(); 
     while(itemEnumerator.moveNext()){ 
      /* loop through all your results */ 
      var item = itemEnumerator.get_current(); 
      var id = item.get_item("ID"); 
      var title = item.get_item("Title"); 
      itemArray.push(id + ": " + title); 
     } 
     alert("ID: Title\n"+itemArray.join("\n")); 
    },function(sender,args){alert(args.get_message());}); 
} 
</script> 
関連する問題