如何在嵌套母版asp.net c#中基于角色制作动态菜单 [英] How to make dynamic menu based on role in nested master page asp.net c#
本文介绍了如何在嵌套母版asp.net c#中基于角色制作动态菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何基于嵌套母版页中的角色制作动态菜单asp.net c#
解决方案
有两种方法,但它们有一些共同点:全部发生在Page_Load方法中。
1.第一种方法是创建一个Sitemap文件,应该是你的第一选择。我只想参考代码项目中的一篇文章:在ASP.NET 2.0中填充菜单控件 - 使用不同的数据源 [ ^ ]
2.第二种方法是在Page_Load方法中进行硬编码:
假设你有角色1,2,3等...
if (Role == 1 )
{
Menu1.Items.Clear(); // 始终清除,否则您将获得重复的项目
// 每次回发
MenuItem item1 = new MenuItem();
item1.Text = 我的目标页面1;
item1.NavigateUrl = 〜/ MyPage1.aspx;
Menu1.Items.Add(item1);
MenuItem item2 = new MenuItem();
item2.Text = 我的目标页面2;
item2.NavigateUrl = 〜/ MyPage2.aspx;
Menu1.Items.Add(item2);
// 等...
}
else if (Role == 2 )
{
// 等...
How to make dynamic menu based on role in nested master page asp.net c#
解决方案
There are 2 approaches, but they have something in common: it all happens in the Page_Load method.
1. First approach is to create a Sitemap file, and should be your #1 choice. I'll just refer to an article in Code Project: Populating Menu Control in ASP.NET 2.0 - using different data sources[^]
2. Second approach is to hard-code in the Page_Load method:
Suppose you have roles 1, 2, 3, etc...
if (Role == 1) { Menu1.Items.Clear(); //always clear, otherwise you'll get items duplicated //on every postback MenuItem item1 = new MenuItem(); item1.Text = "My Target Page 1"; item1.NavigateUrl = "~/MyPage1.aspx"; Menu1.Items.Add(item1); MenuItem item2 = new MenuItem(); item2.Text = "My Target page 2 "; item2.NavigateUrl = "~/MyPage2.aspx"; Menu1.Items.Add(item2); //Etc... } else if (Role == 2) { //Etc...
这篇关于如何在嵌套母版asp.net c#中基于角色制作动态菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文