ASP.NET:如果有validationsummary消息,如何摆脱服务器端消息?

时间:2016-01-02 11:47:45

标签: asp.net validation

我有两个文本框字段和一个“保存”按钮。两个文本框都有customvalidator来进行验证。 如果两个文本框都通过验证,然后单击“保存”,则会在标签控件中显示成功消息(从服务器回发)。 如果任一文本框验证失败,则单击“保存”按钮,错误消息将显示在validationsummary中(在客户端)。 我的情况是:首先最终用户在文本框中输入有效值,然后单击“保存”按钮,标签中会显示成功消息。然后最终用户将值更改为无效值,然后点击“保存”,现在屏幕上显示成功和错误消息。这是因为页面没有刷新。成功消息仍在屏幕上,同时客户端验证失败,因此错误消息显示在validationsummary中。 那么当有客户端错误消息时,如何摆脱成功消息呢? 以下是我的代码示例:

function validate1(src, args){
message="The value is out of range";
  var exp=/^[\s\S]{0,8}$/;
  reg=null;
  if(args.Value){
  reg=new RegExp(exp);
    if(!reg.test(args.Value)){
    args.IsValid=false;
      src.errormessage=message;
      return;
    }
    args.IsValid=true;
    return;
  }
}
<asp:ValidationSummary ID="ValidationSummary" runat="server" ShowMessageBox="false"
    ShowSummary="true" ValidationGroup="ValidationGroup" ForColor="Red" />
<asp:Literal ID="ltlMessage" runat="server"></asp:Literal>
<asp:TextBox ID="txt1" runat="server" ValidationGroup="ValidationGroup"></asp:TextBox>
<asp:CustomValidator ID="cmv1" runat="server" ControlToValidate="txt1" ValidationGroup="ValidationGroup"
    Display="None" ClientValidationFunction="validate1"></asp:CustomValidator>
<asp:TextBox ID="txt2" runat="server" ValidationGroup="ValidationGroup"></asp:TextBox>
<asp:CustomValidator ID="cmv2" runat="server" ControlToValidate="txt2" ValidationGroup="ValidationGroup"
    Display="None" ClientValidationFunction="validate1"></asp:CustomValidator>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" ValidationGroup="ValidationGroup" />

protected void btnSave_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        bool result = DoSomething();
        if (result = true)
        {
            ltlMessage.Text = "Success Message";
        }
        else
        {
            ltlMessage.Text = "Failed Message";
        }
    }
}

0 个答案:

没有答案