如何在母版页中隐藏或显示按钮

时间:2011-07-12 20:17:47

标签: c# asp.net sql-server-2008

我正在开发一个Web应用程序,我在sql db表中对一组用户验证用户。我有一个母版页和几个其他页面。所以当用户'A'登录到应用程序时,我的应用程序查询进入sql表,验证用户。

我的问题是我在我的sql table中有一个名为role的列。所以当用户根据我想要显示的角色进行身份验证或者不在我的主页中显示按钮控件时。我的逻辑就在于后面的代码登录页面。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

您应该使用按钮控件的.Visible属性。如果他们应该有权访问它,则将其设置为true,否则将其设置为false。

答案 1 :(得分:1)

你试过吗?

MyButton.Visible = HttpContext.Current.User.IsInRole("...");

答案 2 :(得分:0)

Cinek的解决方案是您应该使用的解决方案;但是,它要求您使用适当的角色设置到上下文中。这绝对是值得的,因为你可以/应该在那里存储用户信息。

如果您没有重做此架构的选项,则可以通过datagrid的itemdatabound事件完成隐藏按钮。

  void Item_Bound(Object sender, DataGridItemEventArgs e) 
  {

     if((e.Item.ItemType == ListItemType.Item) || 
         (e.Item.ItemType == ListItemType.AlternatingItem))
     {

        Integer intButtonColumn = ###
        Button btn = e.Item.Cells[intButtonColumn].FindControls[0];
        btn.Visible = IsUserInRole();       
     }         

  }