C# 结合 JavaScript 对 Web 控件进行数据输入验证
// 在C#后台代码中,为Web控件添加JavaScript验证
[System.Web.UI.WebControls.WebControl]
public class InputControl : System.Web.UI.WebControls.WebControl
{
// 添加需要验证的属性
public string ValidationGroup { get; set; }
// 重写AddAttributesToRender方法,以便添加验证脚本
protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
// 添加JavaScript验证脚本
writer.AddAttribute(
"onblur",
string.Format("if (!Page_ClientValidate('{0}')) __doPostBack('', '');", this.ValidationGroup)
);
}
}
// 使用示例
// 在ASPX页面中
<custom:InputControl ID="inputControl1" runat="server" ValidationGroup="MyValidationGroup" />
// 添加验证器
<asp:RequiredFieldValidator ControlToValidate="inputControl1" ValidationGroup="MyValidationGroup" ErrorMessage="Required" runat="server" />
// 提交按钮
<asp:Button Text="Submit" ValidationGroup="MyValidationGroup" runat="server" />
在这个示例中,我们定义了一个名为InputControl
的自定义控件,它继承自System.Web.UI.WebControls.WebControl
。我们添加了一个ValidationGroup
属性,该属性用于指定一个验证组。在重写的AddAttributesToRender
方法中,我们添加了一个onblur
事件处理器,当输入控件失去焦点时,它会调用Page_ClientValidate
函数并传入验证组名称。如果验证失败,它将调用__doPostBack
方法以防止页面提交。这个例子展示了如何结合C#后台代码和JavaScript客户端验证来增强Web控件的验证功能。
评论已关闭