1

3 つのライブラリがあり、ライブラリ アイテムの名前を表示したいと考えています。1 つのライブラリのアイテムだけを表示したい場合は問題ありませんが、2 つ以上のライブラリのアイテムを探している場合でも、1 つのライブラリのアイテムしか表示されません。私のコードで何が間違っていますか?

    <p id="AInfo">library A Items</p>
    <p id="BInfo">library B Items</p>
    <p id="CInfo">library C Items</p>

    <script type="text/javascript">

        jQuery(document).ready(function(){ExecuteOrDelayUntilScriptLoaded(fill, "sp.js"); });

        var siteUrl = '/Example/test/';
        liblist = new Array("A", "B", "C"); //list of the libraries
        var i=0;
        var lib;

        function fill(){
            while (i<3){
                lib = liblist[i];
                alert(lib);
                retrieveListItemsInclude();
                i++;
            }
        }


        function retrieveListItemsInclude() {


            var clientContext = new SP.ClientContext(siteUrl);
            var oList = clientContext.get_web().get_lists().getByTitle(lib);

            var camlQuery = new SP.CamlQuery();
            camlQuery.set_viewXml('<View><RowLimit>100</RowLimit></View>');
            this.collListItem = oList.getItems(camlQuery);

            clientContext.load(collListItem, 'Include(Id, DisplayName, HasUniqueRoleAssignments)');

            clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
        }


            function onQuerySucceeded(sender, args) {
                var listItemInfo = '';
                var listItemEnumerator = collListItem.getEnumerator();            

                while (listItemEnumerator.moveNext()) {
                    var oListItem = listItemEnumerator.get_current();
                    listItemInfo += oListItem.get_displayName()+ '<br>';
                }

                var x = listItemInfo.toString();
                document.getElementById(lib+"Info").innerHTML = x;
        }


        function onQueryFailed(sender, args) {

            var x = 'Request failed. ' + args.get_message() + '\n' + args.get_stackTrace();
            document.getElementById(lib+"Info").innerHTML = x;  
        }

    </script>
4

2 に答える 2

0

.ASHX Web サービスを作成して、SharePoint Server に展開できます。次に、REST と JSON を使用して、JavaScript から HttpRequest でクエリを実行できます。

http://msdn.microsoft.com/en-us/library/bb457204(v=office.12).aspx

于 2013-07-09T14:12:34.063 に答える