思路:将验证用的javascript封装到控件内,并和该控件的onkeydown绑定,超级简单。
代码如下:
[DefaultProperty("Text")] [ToolboxData("<{0}:TextBoxDigit runat=server></{0}:TextBoxDigit>")] public class TextBoxDigit : TextBox { protected override void AddAttributesToRender(HtmlTextWriter writer) { writer.AddAttribute("onkeydown", "handleKey1();"); base.AddAttributesToRender(writer); } protected override void OnPreRender(EventArgs e) { var str = " function handleKey1() { \n" + " var key = event.keyCode;\n" + " //0-9,backspace,enter,left,right,tab \n" + " var allKeys = [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 8, 13,37,39,9];\n" + " if (!allKeys.contains(key)) {\n" + " event.returnValue = false;\n" + " }\n" + " }"; Page.ClientScript.RegisterStartupScript(this.GetType(), "", str, true); base.OnPreRender(e); } }