簡體   English   中英

SharePoint 2010-MetroTabs和SpServices。 所有列表在第一個TAB中呈現

[英]SharePoint 2010 - MetroTabs & SpServices . All Lists get rendered in first TAB

早上好家伙,

我正在從事一個SP2010項目的實習。 該公司有多個SSRS報告,他們希望在首頁上使用可訪問的UI按鈕。

這些報告分為多個類別。 因此,我使用Kevin Guyer的MetroTabs解決方案在其自己的選項卡中指定了每個類別。 MetroTabs本質上會將您的Web部件帶到頁面上,並將它們放在選項卡中。

http://kevinguyer.squarespace.com/blog/2013/4/3/metro-style-easy-tabs-for-sharepoint-2010-1.html

如下,我制作了多個SP列表,通過SPServices / Jquery / CAML從中拉出字段(例如Title,Url)。

我在CEWP中執行以下代碼,以獲取每行的列表字段,並將其顯示為選項卡中的自定​​義按鈕。

執行時,對於1 CEWP來說不是問題。

但是,當我制作多個CEWP(每個都有其自己的JS)時,它們都從不同的列表中拉出字段,它會在第一個Tab中顯示所有鏈接,而其他所有Tab均為空。

我在這里做錯了什么? 本質上,我希望SharePoint在選擇相關選項卡時執行JS。 我的代碼確實對每個JS文件都有$(document).ready(function() { ,所以我懷疑這可能是一個問題。

****** EDIT *****試圖在沒有TABS的情況下以不同的CEWP呈現列表。 它不執行多個CEWP中的代碼,而是執行最新的代碼。 因此,弄清楚MetroTabs不是這里的問題。


征求任何反饋意見,並在此先感謝。

第一TAB 第一TAB

第二TAB 跟隨TABS

$(document).ready(function() { 

    GetListX(); //

 //I name this function depending on the name of the list.             
 //So each SP-list has its own function and it's own JS-file.

});

function GetListX() //Function to retrieve list

{

var method = "GetListItems";


var list = "ListNameX"; //Name of the list from which to pull fields


var fieldsToRead =     "<ViewFields>" +
                        "<FieldRef Name='Title' />" +
                        "<FieldRef Name='Url' />" +
                        "<FieldRef Name='RapportID' />" +
                    "</ViewFields>";


var query = "<Query>" +
                "<Where>" +
                    "<Neq>" +
                        "<FieldRef Name='ID'/><Value Type='Number'>0</Value>" + 
                    "</Neq>" +
                "</Where>" +
                "<OrderBy>" + 
                    "<FieldRef Name='Title'/>" +
                "</OrderBy>" +
            "</Query>";


$().SPServices({
    operation: method,
    async: true,
    listName: list,
    CAMLViewFields: fieldsToRead,
    CAMLQuery: query,
    completefunc: function (xData, Status) { 
        $(xData.responseXML).SPFilterNode("z:row").each(function() { 

            var link = ($(this).attr("ows_Url")).split(",")[0];

            var name = ($(this).attr("ows_Title"));


            var rapportID = ($(this).attr("ows_RapportID"));

            AddRowToTable( name, link, rapportID);

        });                
    }
});

}

function AddRowToTable(name, link, rapportID)
{
    $("#container").append("<a target=\"_blank\" href='" + link + "'><div class=\"RapportRij\">" + name + "</div></a>");

}

</script>

<div>
<div id="container">


</div>
</div>

您是否已為每個標簽相應地更新了容器ID?

<div id="container">

更新:這應該是庫設計邏輯,下面是我的測試示例: 在此處輸入圖片說明

我認為您必須修改庫邏輯,或嘗試使用其他選項卡庫。 參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM