65.9K
CodeProject is changing. Read more.
Home

Taming ASP.NET Validation Summary control

Aug 4, 2004

2 min read

viewsIcon

47363

To disable and enable Validation Summary control in ASP.NET while displaying customized error messages to avoid displaying duplicate error messages.

Introduction

ASP.NET provides lot of very strong and effective web controls. One of the most widely used controls is Validation Summary control. It gives us a neat and clean way to display error messages on the web page.

With my current program assignment I came across a problem when I had to disable the Validation Summary control on one button click and enable Validation Summary control on the same or other button click.

I know some of you might say OH what a big deal just use enable or visible property and we can accomplish the task. Yes you can but if you are not getting the desired result that you wanted, please read further.

Details

One of the basic problems, I came across was disabling the page validation summary control while displaying customized error messages. I was running into issue with duplicate error messages being displayed on the screen.

And finally I was able to find a solution for it and would like to share the solution with you hard working programmers- maybe this solution will save you some pain of taming Validation Summary control of ASP.NET

This example requires just very basic knowledge of java script so don’t be scared I promise this will be one of the easiest java scripts that can solve a complex problem.

Add the following text to the page tag on top of your aspx page:

clienttarget="downlevel"

The modified page tag will look something like this:

<%@ Page Language="vb" AutoEventWireup="false" 
  Codebehind="Mypage.aspx.vb" Inherits="MyPage" 
  clienttarget="downlevel" %>

Then add the following java script to your page:

<script language="JavaScript"> 
document.all["buttonName"].onclick = 
  new function("Page_ValidationActive=true;"); 
</script>

Then add the following code to the button click event:

Page.Validate()
 If Page.IsValid Then
   Lblerror.text = “your custom error message”
 If Validationsummary1.Visible = True Then
   Validationsummary1.Visible = False
 End If
  
 Else
     If Validationsummary1.Visible = False Then
            Validationsummary1.Visible = True
            lblError.Text = ""
     End If
 End If        
  • ValidationSummary1 is the validation summary control on the page.
  • lblError is the label control to display your custom error messages.

In addition to this, if you want to disable the page validation on the cancel event of some secured page [to go back to previous page] that is a page with https, you might want add the following java script to your aspx page

<script language="JavaScript"> 
document.all["CancelbuttonName"].onclick = 
  new function("Page_ValidationActive=false;"); 
</script>