[自定义服务器控件] 第一步:文本框。
来源:互联网 发布:手机淘宝转换成电脑版 编辑:程序博客网 时间:2024/05/16 09:14
最近在整理我写的几个服务器控件,发出来与大家共享吧。
我写的自定义服务器控件呢分为两个类,
一是“简单继承”控件,就是继承框架里的控件然后加点属性了、事件了什么的。
二是“功能”控件,简单的说那是符合控件,但是呢是以实现一种功能为目的地。这种控件要实现某一种功能,比如分页的功能,添加、修改数据的功能,查询的功能。
原先呢还不会使用接口了什么的,所以呢代码写得有点不太“好看”,现在使用接口、继承了什么的来整理一下。
先发一个“文本框”的吧,就是继承系统的 TextBox,然后加上几个属性、方法。
属性:
TextTrim 返回.Text.Trim()
TextTrimNone 返回 .Text.Trim.Replace("'", "")
CheckDataType 设置 文本框的验证类型。
CheckDataReg 设置 文本框的验证用的正则表达式。
CheckErrorMessage 设置 当没有通过验证时显示给客户的提示信息。
属性(接口):
ControlKind 返回控件的类型。
函数(接口):
GetValue() 获取文本框的值,默认返回 TextTrim
GetValue(ByVal kind As String) 根据 kind 获取对应的文本框的值。
SetValue(ByVal value As String) 给文本框赋值
SetValue(ByVal value As String, ByVal kind As String)给文本框赋值
取值和赋值为什么会有两套呢?那是为了和其他控件兼容,说到后面就好理解了。
定义接口。
文本框的代码。
FAQ:
1、文本框的验证是如何实现的?
使用正则表达式来验证,在具体点说呢就是使用了一个不知道是谁写一个js函数,就是 checkForm(oForm) 来验证的。
http://www.cnblogs.com/jyk/archive/2007/09/20/899406.html 这里有具体的说明。
2、为什么使用VB.net来写?
很简单,好写。用VB.net写代码还是很方便的,也是很宽松的。好多在C#里不能通过编译的代码,在VB.net里面就可以正常使用,而且提示也是很“智能”的,当初刚写控件的时候还是不太熟悉,VB.net是很好的选择。
以后会陆续说明其他的控件。
我写的自定义服务器控件呢分为两个类,
一是“简单继承”控件,就是继承框架里的控件然后加点属性了、事件了什么的。
二是“功能”控件,简单的说那是符合控件,但是呢是以实现一种功能为目的地。这种控件要实现某一种功能,比如分页的功能,添加、修改数据的功能,查询的功能。
原先呢还不会使用接口了什么的,所以呢代码写得有点不太“好看”,现在使用接口、继承了什么的来整理一下。
先发一个“文本框”的吧,就是继承系统的 TextBox,然后加上几个属性、方法。
属性:
TextTrim 返回.Text.Trim()
TextTrimNone 返回 .Text.Trim.Replace("'", "")
CheckDataType 设置 文本框的验证类型。
CheckDataReg 设置 文本框的验证用的正则表达式。
CheckErrorMessage 设置 当没有通过验证时显示给客户的提示信息。
属性(接口):
ControlKind 返回控件的类型。
函数(接口):
GetValue() 获取文本框的值,默认返回 TextTrim
GetValue(ByVal kind As String) 根据 kind 获取对应的文本框的值。
SetValue(ByVal value As String) 给文本框赋值
SetValue(ByVal value As String, ByVal kind As String)给文本框赋值
取值和赋值为什么会有两套呢?那是为了和其他控件兼容,说到后面就好理解了。
定义接口。
Public Interface IGetControlValue
ReadOnly Property ControlKind() As String
Function GetControlValue() As String
Function GetControlValue(ByVal kind As String) As String
Sub SetControlValue(ByVal value As String)
Sub SetControlValue(ByVal value As String, ByVal kind As String)
End Interface
ReadOnly Property ControlKind() As String
Function GetControlValue() As String
Function GetControlValue(ByVal kind As String) As String
Sub SetControlValue(ByVal value As String)
Sub SetControlValue(ByVal value As String, ByVal kind As String)
End Interface
文本框的代码。
Imports System.ComponentModel
Imports System.Web.UI
Imports HBS
<DefaultProperty("Text"), ToolboxData("<{0}:HBSTextBox runat=server></{0}:HBSTextBox>")> _
Public Class HBSTextBox
Inherits System.Web.UI.WebControls.TextBox
Implements INamingContainer
Implements IGetControlValue
Dim _dataType As String = "101" '数据类型
实现接口
设置文本框的 Text 属性;获取 Text.Trim()
设置文本框的 Text 属性;获取 Text.Trim()
验证类型
验证错误的提示信息
Protected Overrides Sub OnInit(ByVal e As EventArgs)
If Not Me.CssClass Is Nothing Then
Me.CssClass = "txts"
Me.Attributes.Add("DataID", "")
Me.Attributes.Add("DataIDs", "")
End If
End Sub
End Class
Imports System.Web.UI
Imports HBS
<DefaultProperty("Text"), ToolboxData("<{0}:HBSTextBox runat=server></{0}:HBSTextBox>")> _
Public Class HBSTextBox
Inherits System.Web.UI.WebControls.TextBox
Implements INamingContainer
Implements IGetControlValue
Dim _dataType As String = "101" '数据类型
实现接口
设置文本框的 Text 属性;获取 Text.Trim()
设置文本框的 Text 属性;获取 Text.Trim()
验证类型
验证错误的提示信息
Protected Overrides Sub OnInit(ByVal e As EventArgs)
If Not Me.CssClass Is Nothing Then
Me.CssClass = "txts"
Me.Attributes.Add("DataID", "")
Me.Attributes.Add("DataIDs", "")
End If
End Sub
End Class
FAQ:
1、文本框的验证是如何实现的?
使用正则表达式来验证,在具体点说呢就是使用了一个不知道是谁写一个js函数,就是 checkForm(oForm) 来验证的。
http://www.cnblogs.com/jyk/archive/2007/09/20/899406.html 这里有具体的说明。
2、为什么使用VB.net来写?
很简单,好写。用VB.net写代码还是很方便的,也是很宽松的。好多在C#里不能通过编译的代码,在VB.net里面就可以正常使用,而且提示也是很“智能”的,当初刚写控件的时候还是不太熟悉,VB.net是很好的选择。
以后会陆续说明其他的控件。
- [自定义服务器控件] 第一步:文本框。
- ASP.NET自定义Web服务器控件-TextBox文本框控件
- 自定义控件>智能文本框(InputView)
- 自定义控件之日历文本框(DateTextBox)
- 【WPF】自定义控件:NumericBox 数字输入文本框
- 禁止服务器控件双击文本框选择
- 文本服务器控件(标签Label控件和文本框(TextBox)控件)
- 自定义服务器控件(转)
- 自定义服务器控件效果
- 服务器控件自定义属性FAQ
- 如何开发自定义服务器控件
- 自定义服务器控件中的事件
- ASP.NET自定义服务器控件
- ASP.NET 自定义服务器控件
- CAS——手写第一步:HTML控件与Web服务器控件
- 自定义控件——只能输入数字的文本框
- 自定义控件 实现文本框输入模仿下拉框选择功能
- 自定义控件>带下拉框的文本框 (DropEditView)
- 锁定表格的另一种方法。
- 主动编程与被动编程!(8/2原则的续集)
- 发布一个锁定行列的一种方法。(实现Excel里的冻结窗格的功能)
- OO——从不知到知道一点,从迷茫到豁然开朗 (迟来的我的2002到2007)
- 使用了继承、多态还有工厂模式和反射,但是还是没有OO的感觉。[已经增加了实现的代码]
- [自定义服务器控件] 第一步:文本框。
- 检查两个数据库里的表名、字段是否一致的一种方法
- 设计上的8/2原则,您实现了吗?实现后会是什么样子的呢?
- 基类、接口的应用——表单控件:一次添加、修改一条记录,一次修改多条记录。(上)
- Grub for dos bootloader 分析
- 当OO遇到了持久化?!
- 分页控件和几个相关控件的源代码
- 很简单的企业管理器---我写程序的方式,几个自定义控件。
- 《Head First 设计模式》 终于出中文版了。