是否隐藏默认为Visible=false的控件



我有一个标签,其目的是在页面中显示错误,因此默认情况下该标签不可见。我点击按钮";过程";,其调用按钮事件处理程序。它看起来像这样:

protected void Button_Process_Click(object sender, EventArgs e)
{
try
{
DoComplexStuff();
}
catch (Exception ex)
{
LogError();
this.Label_Error.Visible = true;
this.Label_Error.Text = ex.Message;
}              
}

在标记中,控件Label_Error被设置为visible="false",因此每当捕捉到错误时,它都被设置为this.Label_Error.Visible = true;,然后显示错误。

问题是我必须再次隐藏;过程";按钮。这意味着在按钮事件处理程序的最顶部,我必须用this.Label_Error.Visible = false;隐藏标签。如果没有,当按钮完成处理时,错误仍然存在。

protected void Button_Process_Click(object sender, EventArgs e)
{
this.Label_Error.Visible = false; //Is there a way to automatically do this?
try
{
DoComplexStuff();
}
catch (Exception ex)
{
LogError();
this.Label_Error.Visible = true;
this.Label_Error.Text = ex.Message;
}              
}

有没有一种方法可以自动隐藏默认情况下不可见的控件?

这应该有效:

try
{
this.Label_Error.Visible = false;
DoComplexStuff();
}
catch (Exception ex)
{
LogError();
this.Label_Error.Visible = true;
this.Label_Error.Text = ex.Message;
}              

然而,只有当这是这里正在进行的唯一按钮/事件时,以上内容才是好的。

我建议忽略我上面的笨拙操作,并将可见设置移动到页面加载事件中。它总是先启动——即使是按钮点击和其他控制事件。因此,在页面加载事件中设置控件。

this.Label_Error.Visible = false;

现在,任何和所有事件代码存根都可以自由地设置标签visible=true。如果没有,则控件将不会显示。因此,加载时首先启动,而且总是这样。我想,人们可能应该在上面加上一个if isPostBack=False-因为我99%的页面在加载时都有这样的代码块-然后在页面加载isPostBack中加上上面一行;真";代码存根。但是,只需在页面加载中插入上面的一行也可以。

最新更新