#c# #asp.net #dotnetnuke
#c# #asp.net #dotnetnuke
Вопрос:
Я новичок в веб-сайтах DNN и хотел бы отобразить список страниц корневого уровня (Главная страница, Контакты и т. Д.) В верхней части моего скина. Прямо сейчас у меня есть:
TabController.GetPortalTabs(0,-1, false, "", false, false, false, true,false);
Подача моего повторителя, который отображает ссылки. Однако, когда я вхожу в систему для редактирования страниц, навигация расширяется и включает в себя все страницы уровня администратора, что нарушает мой дизайн. Есть ли способ показать только общедоступные страницы, даже когда я вошел в систему?
Ответ №1:
Вы могли бы использовать 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 />");
}
}
Комментарии:
1. Приятно, что я не видел свойство isVisible в первый раз, я воспользовался вашей помощью, чтобы получить свой окончательный ответ, опубликованный ниже.
2. ДотНетНуке. Обычный. Глобальные переменные. 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
Ответ №3:
Я должен был также проверить, была ли страница удалена или у меня появлялись страницы-зомби.
var tabs = TabController.GetTabsByParent(-1, PortalId);
foreach (var t in tabs)
{
if (t.IsVisible amp;amp; !t.IsDeleted)
{
Response.Write(t.TabName);
Response.Write("<br />");
}
}
Комментарии:
1. DotNetNuke. Обычный. Глобальные переменные. GetPortalTabs(portalID, false, true, false, true, true) .. это моя функция, она возвращает список массивов со всеми вкладками .. но мне не нужны вкладки администратора… Что делать? пожалуйста, помогите мне..
Ответ №4:
Использовал помощь сверху, чтобы добраться сюда:
List<DotNetNuke.Entities.Tabs.TabInfo> tabs = TabController.GetTabsByParent(-1, 0).FindAll(
delegate(DotNetNuke.Entities.Tabs.TabInfo tab)
{
return tab.IsVisible amp;amp; !tab.IsDeleted;
}
);