如何解决隐藏默认为 Visible=false 的控件?
我有一个标签,其目的是在页面中显示错误,因此默认情况下该标签不可见。我单击按钮“Process”,它调用按钮事件处理程序。它看起来像这样:
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;
}
然而,只有当这是这里发生的唯一按钮/事件时,上面才是好的。
我建议忽略我上面的 kluge - 并将可见设置移动到页面加载事件中。它总是首先触发 - 即使是按钮点击和其他控制事件。所以在页面加载事件中设置控件。
this.Label_Error.Visible = false;
现在任何和所有事件代码存根都可以自由设置标签可见 = 真。如果没有,则控件将不会显示。因此,负载首先触发并且始终如此。我想,一个人可能应该在上面用 if isPostBack = False 换行 - 因为我的 99% 的页面在加载时都有这样的代码块 - 然后在你的页面加载 IsPostBack “true” 代码存根中添加一行以上。但只需将上面的一行添加到页面加载中也可以。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。