扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
public interface IValidator{ string ErrorMessage{set;get;} bool IsValid{set;get;} void Volidate{}; } |
using System; using System.Collections; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; namespace essay.Controls{ //派生于BaseValidator基类的自定义验证器 public class RequiredCheckBoxListValidator : BaseValidator { private ListControl m_ListCtl; //启用客户端验证 public RequiredCheckBoxListValidator(){ base.EnableClientScript = true; } //确定由ControlToValidate指定的被验证控件是否有效 protected override bool ControlPropertiesValid(){ Control webControl = this.FindControl(ControlToValidate); if (webControl != null){ m_ListCtl = (ListControl)webControl; return true; } else return false; } //定义校验规则 protected override bool EvaluateIsValid(){ return (m_ListCtl.SelectedIndex != -1); } protected override void OnPreRender(EventArgs e) { if (this.EnableClientScript) this.GenerateScript(); base.OnPreRender(e); } //产生并向页面注入客户端验证脚本 protected void GenerateScript(){ StringBuilder sb_Script = new StringBuilder(); sb_Script.Append("<script language=\"javascript\">\n"); sb_Script.Append("function cb_vefify(val) {\n"); sb_Script.Append("var isValid=false;\n"); sb_Script.Append("var val = document.all[document.all[\""+this.ID+"\"].controltovalidate];\n"); sb_Script.Append("var col = val.all;\n"); sb_Script.Append("if ( col != null )\n"); sb_Script.Append("for ( i = 0; i < col.length; i++ ) \n"); sb_Script.Append("if (col.item(i).tagName == \"INPUT\") \n"); sb_Script.Append("if ( col.item(i).checked )isValid=true; \n"); sb_Script.Append("return isValid;"); sb_Script.Append("}\n"); sb_Script.Append("</script>"); this.Page.RegisterClientScriptBlock("RBLScript", sb_Script.ToString()); //通过设置验证器的evaluationfunction attribute来指定其客户端验证逻辑 this.Attributes["evaluationfunction"] = "cb_vefify"; } } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者