Vb.net web控件---数字控件
来源:互联网 发布:电脑格式软件格式 编辑:程序博客网 时间:2024/06/09 22:02
实现功能:
对文本框输入的只能数字.
实现分析:
在网页中(asp)我们比较熟悉的,对文本框输入验证是通过java来实现
对input的KeyPress,Keydown,KeyUp事件来处理.
首先我们可以建一个html 文件,加入一个Input text 来实现这个功能.
我采用KeyPress事件所用的Java代码为:
我采用KeyPress事件所用的Java代码为:
function numbereditor_keypress(e)
{
var newkeypress=event.keyCode;//这里应该要先赋值吧,不然直接试用if在我个人电脑测试通不过.
if(newkeypress>48 && newkeypress<57)
{
return true; //是数字 可以输入 返回true
}
else
{
//event.keyCode="";
return false;
}
}
在.net中,我们只要对textbox的输入进行判断,可以采用textbox的attribute功能来添加一个onkeypress事件.
程序完整代码和注释:
Imports System
Imports System.Text
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Web.UI
<DefaultProperty("Text"), ToolboxData("<{0}:numbereditor runat=server></{0}:numbereditor>")> Public Class NumberEditor
Inherits System.Web.UI.WebControls.TextBox
REM 声明javascript 函数 唯一 多次试用只输出一个javascirpt function
Private Const SCP_NUMBER_ONLYSCRIPT_ID As String = "{31E7D9A24-82DB-5AF3-DADE-7D0B782C-23A43}"
REM javascript 函数
Private Const SCP_NUMBER_ONLY_SCRIPT As String = "<Script language=""Javascript"" >" + vbCrLf + "function numbereditor_keypress(e) " + vbCrLf + "{" + vbCrLf + "var newkeypress=event.keyCode;" + vbCrLf + " if(newkeypress==13)" + vbCrLf + "return true;" + vbCrLf + "if(newkeypress<48 || newkeypress>57)" + vbCrLf + "return false;" + vbCrLf + "else" + vbCrLf + "return true;" + vbCrLf + "}" + vbCrLf + "</script>"
Private Const SCP_NUMBER_ONLY_HOOK As String = "return numbereditor_keypress(this);" ’后面的onkeypress调用,可以后面直接试用不声明.:)
Dim _text As integer=0 '默认值,当text值为数字时,初始化值需要.
Private _Length As Integer = 18 '设置这个的目的是 改变默认的长度最大值,呵呵不弄也可以.
#Region "重写text属性,把所有的非数字的赋值,全部转化为数字型.tostring"
<Bindable(False), Category("Appearance"), DefaultValue(0)> Shadow Property [Text]() As integer
Get
Return _text
End Get
Set(ByVal Value As integer)
Try
_text = value
'先转化为double再转化为int,直接转化遇到字母等会产生exception
Catch
_text = 0
End Try
End Set
End Property
#end region
#Region "重写最大长度--去掉也可"
<Bindable(False), Category("Appearance"), DefaultValue(20)> Overrides Property [MaxLength]() As Integer
Get
Return _Length
End Get
Set(ByVal Value As Integer)
Try
_Length = Value
Catch
_Length = 18
End Try
End Set
End Property
#end region
#region "Javascript代码的输出,并保证当页面多个该控件时,javascript funtion的唯一性"
Private Sub outputJavascript()
If (Not Page.IsClientScriptBlockRegistered(SCP_NUMBER_ONLYSCRIPT_ID)) Then
REM 强制ID为整个控件的ID
Me.Page.RegisterClientScriptBlock(SCP_NUMBER_ONLYSCRIPT_ID, SCP_NUMBER_ONLY_SCRIPT)
End If
End Sub
#end region
Protected Overrides Sub AddAttributesToRender(ByVal writer As HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
writer.AddAttribute("OnKeyPress", Me.SCP_NUMBER_ONLY_HOOK)
'输出 增加attribute
End Sub
Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
MyBase.OnPreRender(e)
outputJavascript() '输出前确定javascript function 的输出
End Sub
End Class
- Vb.net web控件---数字控件
- vb.net控件、web service简述
- vb.net隐藏控件
- VB.NET 控件说明
- [VB.NET]datagridview控件
- [VB.NET]richtextbox控件
- vb.net控件简述
- vb.net控件简述
- vb.net--Label控件
- [VB.NET]如何遍历web窗体中所有的控件
- vb.net动态控件数组
- VB.NET DataGridViewComboBoxColumn控件赋值
- 轻松调整VB.NET控件
- vb.net 2005 控件数组
- [VB.NET]关于ListView控件
- vb.net UltraChart 控件属性
- VB.NET 控件数组相关
- VB.NET控件之ComboBox
- java初学例子
- alfresco for Windows Tomcat Bundle中文安装说明
- 谈jdbc连接sql server2000数据库
- Chap 13 学习笔记-操纵数据源
- VC++的链接错误LNK2001(ZT)
- Vb.net web控件---数字控件
- 从sql server中随即搜索出几条数据
- Chap 14 学习笔记-ASP.NET服务器控件
- Hibernate--2 hbm2java
- 程序的错误处理(转载)
- c#中关于字符串的一些函数
- 管理十大经典理论
- JDK1.4安装与环境配置完全图解(Windows版)
- 认识Web.config文件