2010-03-03 68 views
0

我正在一个应用程序中,我在母版页中有一些linkbuttons。
我想显示它们取决于授予他们的授权,一旦他们登录。我最初让他们所有人都可见,然后我检查授权在母版页的aspx.cs类。根据授予用户的权限,我可以显示链接按钮。但它使所有的链接按钮可见。相反,它应该只让其中两个可见,并且应该隐藏其余的。以下是我的代码MasterPage.aspx.cs:隐藏在母版页中的按钮

ArrayList arrlstUserRoles = new ArrayList(); 
       arrlstUserRoles = (ArrayList)Session["Roles"]; 
       for (int j = 0; j < arrlstUserRoles.Count; j++) 
       { 
        if (int.Parse(arrlstUserRoles[j].ToString()) == 1) 
        { 
         lbtnRetailer.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 2) 
        { 
         lbtnCategory.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 3) 
        { 
         lbtnCouponTemplate.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 4) 
        { 
         //lbtnStoreManagement.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 5) 
        { 
         lbtnStoreManagement.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 6) 
        { 
         lbtnContentManagement.Visible = true; 
        } 
        else if (int.Parse(arrlstUserRoles[j].ToString()) == 7) 
        { 
         //lbtnStoreManagement.Visible = true; 
        } 
       } 
+0

而且你的问题是??? – Oded

+0

当你调试时,它是否评估每个if语句为真? – adrianos

回答

0

您需要将要隐藏的LinkBut​​tons的可见性设置为false。

开始之前循环,设置所有的了LinkBut​​ton不可见:

arrlstUserRoles = (ArrayList)Session["Roles"]; 

lbtnRetailer.Visible = false; 
lbtnCategory.Visible = false; 

... 

for (int j = 0; j < arrlstUserRoles.Count; j++) 
{ 
    if (int.Parse(arrlstUserRoles[j].ToString()) == 1) 
    { 
    lbtnRetailer.Visible = true; 
    } 
    ... 

    } 
+0

这是我犯的一个非常愚蠢的错误,谢谢指出我的错误 – pankaj