Click here to Skip to main content
15,885,757 members
Articles / Web Development / HTML

Enhancing the presentation of standard validator outputs

Rate me:
Please Sign up or sign in to vote.
4.68/5 (26 votes)
13 Jul 20068 min read 129.9K   758   61  
How flexible is the normal functionality of ASP.NET validators? In this article, I am going to show how to customize the appearance of the attached control of a validator during an error situation on the server or the client side, or even call a custom client function without postback.
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UserControls.HighlightValidators.Helpers
{
    public class EventHelper
    {
        public static void OnLoad(BaseValidator validator)
        {
            ClientScriptManager cs = validator.Page.ClientScript;
            cs.RegisterClientScriptResource(typeof(IHighlightable), "UserControls.HighlightValidators.HighlightClientValidation.js");

            Control control = validator.Parent.FindControl(validator.ControlToValidate);
            if (control != null)
            {
                if (!cs.IsClientScriptBlockRegistered(validator.GetType(), String.Format("HighlightValidation_{0}", validator.ClientID)))
                {
                    cs.RegisterClientScriptBlock(validator.GetType(), String.Format("HighlightValidation_{0}", validator.ClientID), String.Format("Page_HighlightValidators.push(new Array('{0}', '{1}', '{2}', '{3}'));", validator.ClientID, control.ClientID, ((IHighlightable)validator).ErrorCssClass, ((IHighlightable)validator).ErrorClientFunction), true);
                }
            }
        }

        public static void OnPreRender(BaseValidator validator)
        {
            WebControl control = (WebControl)validator.Parent.FindControl(validator.ControlToValidate);
            if (control != null)
            {
                ClassNameHelper.Remove(control, ((IHighlightable)validator).ErrorCssClass);
                if (!validator.IsValid)
                {
                    ClassNameHelper.Add(control, ((IHighlightable)validator).ErrorCssClass);
                    control.ToolTip = validator.ToolTip;
                }
            }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Ukraine Ukraine
Alexander is freelance web developer with 4 years experience. He has skills in ASP.NET/MS SQL Server, PHP/MySQL, Ruby On Rails, XHTML, CSS. You can contact with me by seigo.ua@gmail.com. Also check my homepage at www.klalex.com.

Comments and Discussions