0

通常、SharePoint サーバー オブジェクト モデルからデータを取得しています。しかし、JSOM を使用して SharePoint リストからデータを収集する必要があります。

私の要件は以下のとおりです。

ID、タイトル、ステータスの 3 つの列を持つ List1 というリストがあります。

Status が 1 で Title = "My given title" であるすべてのデータを取得する必要があります

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

4

1 に答える 1

1

こちらのドキュメントでは、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>
于 2016-05-03T17:50:36.673 に答える