在服务器上提交之前隐藏asp标签文本

时间:2012-07-11 14:37:07

标签: asp.net label validation

这个问题看起来非常简单,但它给了我痛苦 我手动创建一个登录页面,检查来自linq的用户电子邮件和密码。在登录页面上有一个asp标签,根据查询结果显示错误消息,例如“用户不存在”或“用户不活动”等。在两个文本框上都有asp必需的字段验证器。 问题是如果用户第一次尝试失败并且消息显示在标签上,除非用户成功插入,否则它不会消失。我希望文本返回lable1.text =“”提交按钮但它不能作为它是一个服务器端控件,如果为空,文本框验证器不会让它出现。我必须使用java脚本吗?

2 个答案:

答案 0 :(得分:1)

这里最简单的方法就是按照你的想法清除javascript中的消息。

<asp:Button ID="SubmitButton" OnClientClick="ClearLableText" runat="server" />

根据您的评论更新javascript:

function ClearLableText() { var element = document.getElementById("<% this.lblMessage.ClientID %>"); element.innerHTML = ""; } 

答案 1 :(得分:0)

你可以试试这个

protected void page_load(object sender, EventArgs e)
{
    MyMessageLabel.Text = ""; //or .Visible = false;
}

protected void Button_Click(object sender, EventArgs e)
{
   //By this time, page_load had already executed and the Message Label cleared 
   MyMessageLabel.Text = "new result from server";

   if(validResult)
     //RedirectToWhere();
   else
     //StayOnPage();
}

希望它适合你。