通常、SharePoint サーバー オブジェクト モデルからデータを取得しています。しかし、JSOM を使用して SharePoint リストからデータを収集する必要があります。
私の要件は以下のとおりです。
ID、タイトル、ステータスの 3 つの列を持つ List1 というリストがあります。
Status が 1 で Title = "My given title" であるすべてのデータを取得する必要があります
JSOM を使用して解決策を提供してください。
通常、SharePoint サーバー オブジェクト モデルからデータを取得しています。しかし、JSOM を使用して SharePoint リストからデータを収集する必要があります。
私の要件は以下のとおりです。
ID、タイトル、ステータスの 3 つの列を持つ List1 というリストがあります。
Status が 1 で Title = "My given title" であるすべてのデータを取得する必要があります
JSOM を使用して解決策を提供してください。
こちらのドキュメントでは、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>