Asp.net中验证控件扩展,使被验证框高亮

    //Rewrite function ValidatorUpdateIsValid in WebUIValidation.js    
    function ValidatorUpdateIsValid() {
        var i;
        var item;
        var index=-1;
        var canPass=true;
        var j=0;
        var bannerAD = new Array();
           
        for (i = 0; i < Page_Validators.length; i++) {
            if (!Page_Validators[i].isvalid) {
            //alert(Page_Validators[i].id+'-------a');
             item = document.getElementById(Page_Validators[i].controltovalidate);
             //item.style.borderColor="red";
             bannerAD[j]=item;
             //alert(bannerAD[j]);
             j++;
             //index=i;
             //canPass=false;
                Page_IsValid = false;
                //return;
            }
            else
            {
         //alert(Page_Validators[i].id+'------b');
                item = document.getElementById(Page_Validators[i].controltovalidate);
                item.style.borderColor="#ababab";
                //Page_IsValid = true;
            }
       }
       for( var t=0;t<bannerAD.length;t++)
       {
            //alert(bannerAD[t]);
            bannerAD[t].style.borderColor="red";
       }
       
       for (i = Page_Validators.length-1; i >=0 ; i--) {
            if (!Page_Validators[i].isvalid) {       
             index=i;       
             canPass=false;
            }     
       }
       if(index>=0)
       {
         item = document.getElementById(Page_Validators[index].controltovalidate);
         item.focus();
       }
         if(!canPass)
             return;
       Page_IsValid = true;
    }
      使用方法:

      将上面的代码复制到任何一个使用验证控件的页面,此函数将会覆盖WebUIValidation里的同名函数,达到背景变色的目的

      环境:asp.net 1.1,ie(很遗憾,firefox在asp.net1.1环境下,验证控件的客户端验证不会起作用)


      ServerSide Code:

      public static void SetControl(System.Web.UI.UserControl objUserControl)
                              {
                                          System.Web.UI.WebControls.BaseValidator validator=null;
                                          object controtovalidator=null;
                                          System.Web.UI.WebControls.WebControl wc=null;
                                          foreach( IValidator validator in Page.Validators[0] )
                                          {
                                       
                                                if(!validator.IsValid)
                                                {                                                                       
                                                     wc.Attributes.Add("style","border-color:red");
                                                 }
                                                 else
                                                 {
                                                      wc.Attributes.Add("style","border-color:");
                                             }
                                          }                       
                              }
       
       
      Code example:
       
      static public void onRegisterValidation(Registration objRegistration)
                              {
                                          if(objRegistration.Page.IsValid)
                                          {
                                                      …
                                          }
                                          else
                                          {                                   
                                                      SetControl(objRegistration.InnerRegistrationInstance);
                                                      
                                          }
                              
                              }       


      posted on 2007-10-12 13:42  JIN Weijie  阅读(305)  评论(0编辑  收藏  举报