2011-10-20 51 views
3

我是DNN網站的新手,並希望在我的皮膚上顯示根級頁面(主頁,聯繫我們等)的列表。現在我有:如何獲得DotNetNuke中的所有公共頁面?

TabController.GetPortalTabs(0,-1, false, "", false, false, false, true,false); 

餵我的中繼器,顯示鏈接。但是,當我登錄以編輯頁面時,導航也會增長以包含所有管理級別頁面,並會破壞我的設計。是否有辦法讓公共頁面即使在登錄時也能顯示出來?

回答

1

用於幫助從上面到這裏:

List<DotNetNuke.Entities.Tabs.TabInfo> tabs = TabController.GetTabsByParent(-1, 0).FindAll(
     delegate(DotNetNuke.Entities.Tabs.TabInfo tab) 
     { 
      return tab.IsVisible && !tab.IsDeleted; 
     } 
     ); 
+0

很高興爲您提供幫助 –

10

你可以使用var tabs = TabController.GetTabsByParent(-1,PortalId);

然後,您可以通過該選項卡列表進行篩選,以刪除菜單中未顯示的選項。像下面這樣。

var tabs = TabController.GetTabsByParent(-1, PortalId); 
      foreach (var t in tabs) 
      { 
       if (t.IsVisible) 
       { 
        Response.Write(t.TabName); 
        Response.Write("<br />"); 
       } 
      } 
+0

尼斯,沒看到ISVISIBLE財產第一次,我用你的幫助,讓我到我的貼在下面的最終答案。 – box86rowh

+0

DotNetNuke.Common.Globals.GetPortalTabs(portalID,false,true,false,true,true)..這是我的函數,它返回一個包含所有選項卡的數組列表......但是我不需要Admin選項卡......什麼做?請幫助我.. –

1

我只好也檢查頁面已被刪除或我是越來越殭屍頁面展現出來。

var tabs = TabController.GetTabsByParent(-1, PortalId); 
     foreach (var t in tabs) 
     { 
      if (t.IsVisible && !t.IsDeleted) 
      { 
       Response.Write(t.TabName); 
       Response.Write("<br />"); 
      } 
     } 
+0

DotNetNuke.Common.Globals.GetPortalTabs(portalID,false,true,false,true,true)..這是我的函數,它返回一個包含所有選項卡的數組列表..但我不會不想管理員標籤...該怎麼辦?請幫幫我.. –

2

LINQ的一點點做是非常乾淨的

Dim pages = (From tc In TabController.GetTabsByParent(-1, PortalId) 
      Where tc.IsVisible And Not tc.IsDeleted 
      Select tc).ToList 
相關問題