组合框的条件可见性

时间:2010-11-27 05:42:37

标签: c# asp.net

我正在开发一个检查ROLE_ID是否为3的页面,如果它是3那么

        if ((Int32.Parse(Session["RoleID"].ToString()) == 3))

        {

            cmbempList.Visible = false;

        }

现在我想检查ROLE_ID = 3的用户是否是导师,如果他是导师,那么他就可以看到cmbempList。

  public bool CheckMentorAccess()

    {

        bool blnAllow = false;

        try
        {
            string strSelectMentorQuery = "SELECT COUNT(DISTINCT MLL.LED_ID) FROM M_USER_DETAILS MUD INNER JOIN M_LEADERLED MLL "
                + "ON MLL.LED_ID = MUD.PK_ID WHERE MLL.LEADER_ID = '" + Session["UserID"].ToString()
                + "' AND MUD.ACTIVE = 1 AND MLL.START_DATE <= Getdate() AND"
                + " MLL.END_DATE > Getdate()";

            int intNoOfMembers = Convert.ToInt32(cSQLHelper.myExecuteScalar(strSelectMentorQuery));

            if (intNoOfMembers > 0)
            {
                blnAllow = true;
            }

        }
        catch (Exception ex)
        {
            ExceptionLogger.LogException(ex);
            blnAllow = false;
        }

        // Return the value
        return blnAllow;
    }

如果此函数返回true,并且ROLE_ID = 3,那么cmbempList将对他可见。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

问题是什么,你有CheckMentorAccess()函数,如果登录用户是Mentor并且你在会话变量中有Stored RULEID,则返回true,所以现在你的业务规则说明了

现在我想检查ROLE_ID = 3的用户是否是导师,如果他是导师,那么他就可以看到cmbempList

如果你分析这句话,它包含两个陈述

1-用户必须具有RoleId = 3

2-用户必须是导师。

所以如果你想组合这些语句,那么用户必须拥有role_id = 3,用户必须是导师。

所以在c#代码中转换上述条件

int roleId 

if(int.TryParse(Session["RoleID"].ToString(),out roleId))
 {
   cmbempList.Visible = ((roleId == 3) && CheckMentorAccess());
 }