0

サイト コレクション全体のツリーが完成するまで、サイト全体を反復処理して、トップ レベル サイトをすべてリストし、次に各サイト サブサイト、次に各サブサイト サブサイトをリストする必要があります。これを達成するために関数をループする方法がわかりません。

これは私の最初のhtmlです:

      <div id="treeviewDiv" style="width:200px;height:150px;overflow:scroll">
        <ui id="treeviewList"></ui>
      </div>

これは私が使用しているJavascriptです:

だから私がやろうとした方法は、最初のサイトを見つけた後、$().SPServices を実行して、$(this).attr(url) に基づいてサブサイトのリストを取得することでした。

function getSiteTree(){
    var tree = $('#treeviewList');
    var rootsite = window.location.protocol + "//" + window.location.hostname;

$().SPServices({
    operation: "GetWebCollection",
    webURL: rootsite,
    async: true,
    completefunc(xData, Status){
        $(xData.responseXML).find("Web").each(function(){
            tree.append("<li value='" + $(this).attr("Url") + "'>" + $(this).attr("Title") + "</li>");

             $().SPServices({
                operation: "GetWebCollection",
                webURL: $(this).attr("Url"),
                async: true,
                completefunc: function(xData, Status){
                    if($(xDate.responseXML.find("Web"))){
                        $(xData.responseXML).find("Web").each(function(){
                        strHTMLTopSites += "<li value='" + $(this).attr("Url") + "'>" + $(this).attr("Title") + "</li>";

*** I kind of gave up at this point, it seemed like I'd just be copying the amount of times I run this function arbitrarily which seemed like a bad way to do it.  
                      });
                    }

        });
    }
});

}

これは、$().SPServices を実行したときに得られる XML 応答です。

<Webs xmlns="http://schemas.microsoft.com/sharepoint/soap/">
   <Web Title="Subsite1_Name" Url="http://Server_Name/[sites]/
      [Site_Name]/[Subsite1]" />
   <Web Title="Subsite2_Name" Url="http://Server_Name/[sites]/
      [Site_Name]/[Subsite2]" />
</Webs>

これは、サブサイトがない場合の XML です。

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetWebCollectionResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"><GetWebCollectionResult>`<Webs />`</GetWebCollectionResult></GetWebCollectionResponse></soap:Body></soap:Envelope>

このようなものは、私が作成しようとしているものです:

<div class="demo-section">
    <ul id="treeview">
        <li>Furniture
            <ul>
                <li>Tables & Chairs</li>
                <li>Sofas</li>
                <li>Occasional Furniture</li>
                <li>Childerns Furniture</li>
                <li>Beds</li>
            </ul>
        </li>
        <li>Decor
            <ul>
                <li>Bed Linen</li>
                <li>Throws</li>
                <li>Curtains & Blinds</li>
                <li>Rugs</li>
                <li>Carpets</li>
            </ul>
        </li>
        <li>Storage
            <ul>
                <li>Wall Shelving</li>
                <li>Kids Storage</li>
                <li>Baskets</li>
                <li>Multimedia Storage</li>
                <li>Floor Shelving</li>
                <li>Toilet Roll Holders</li>
                <li>Storage Jars</li>
                <li>Drawers</li>
                <li>Boxes</li>
            </ul>
        </li>
    </ul>
</div>
4

0 に答える 0