在page_load期间,文本框和标签不会隐藏

时间:2016-05-09 10:14:06

标签: c# asp.net

txtDisc不是字符串 special_user 时,我试图隐藏对象lblUserType。当lblLock可见性为false时,txtDisc 已锁定并且可见,反之亦然。

所以我将它放在page_Load中,但该方法根本不起作用。

protected void Page_Load(object sender, EventArgs e)
{
    buttonVisibility();
}

private void buttonVisibility()
{
    if (lblUserType.Text == "special_user")
    {
        txtDisc.Visible = true;
        lblLock.Visible = false;
    }
}

2 个答案:

答案 0 :(得分:4)

将您的代码更改为:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack == false)
    { 
        buttonVisibility();
    }
}

private void buttonVisibility()
{
    if (lblUserType.Text == "special_user")
    {
        txtDisc.Visible = true;
        lblLock.Visible = false;
    }
    else
    {
        txtDisc.Visible = false;
        lblLock.Visible = true;
    }
}

通过使用if(Page.IsPostBack == false),我们确信内部代码只会在第一页加载时执行。 IsPostBack是Asp.Net页面的一个属性,它告诉页面是否处于初始加载状态,或者用户是否在网页上执行了导致页面回发给自身的按钮

答案 1 :(得分:0)

您在代码中仅使用if条件,但如果条件不正确,应采取哪些操作?因此,在您的条件中添加一个else块

试试这段代码:

private void buttonVisibility()
{
    if (lblUserType.Text == "special_user")
    {
        txtDisc.Visible = true;
        lblLock.Visible = false;
    }
    else
    {
        txtDisc.Visible = false;
        lblLock.Visible = true;
    }
}