ASP.NET只允许输入数字的自定义控件
思路:将验证用的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);
}
}
浙公网安备 33010602011771号