如何在嵌套母版asp.net c#中基于角色制作动态菜单 [英] How to make dynamic menu based on role in nested master page asp.net c#

查看:80
本文介绍了如何在嵌套母版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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆