年龄计算 Web 自定义控件






3.67/5 (3投票s)
使用 ASP.NET 2.0 创建 Web 自定义控件

引言
Web 自定义控件是现有控件(如 TextBox、Label)的组合,用作单个控件。我们可以像其他 Web 控件一样,在所有 Web 应用程序中使用这种类型的控件。
年龄计算 Web 自定义控件 (AgeCalWCC) 使用 ASP.NET 2.0 和 VB 编码开发。AgeCalWCC 是一个 Web 自定义控件,用于使用用户的出生日期 (DOB) 计算用户的年龄。
此 AgeCalWCC 模块主要集中在 Web 自定义控件的创建上。该模块提供近似的年龄(为了最大限度地减少代码),以年、月和日为单位,从用户的出生日期 (DOB) 计算得出。
我相信,此 AgeCalWCC 模块对中级程序员创建 Web 自定义控件非常有帮助。
AgeCalWCC 输入/输出详情

变量命名
我使用驼峰命名法来表示控件(例如 txtName),使用 Pascal 命名法来表示函数和变量,如字符串、整数等(例如 AgeCalFun、YearCurrent)。
AgeCalWCC 中使用的控件
以下 Web 控件在 AgeCalWCC 中使用:
1.
|
TextBox - 2 个。 | |
txtName - 获取用户名 | ||
txtDOB - 获取用户的出生日期 | ||
2.
|
Label - 1 个。 | |
lblResult - 显示用户的年龄或错误消息 | ||
3.
|
Button - 1 个。 | |
btnButton - 触发年龄计算 | ||
4.
|
HTML 表格 - 3 X 5 | |
tblAgeCalWCC - 安排上述控件。 |
AgeCalWCC 的属性
1.
|
名称 | - txtName TextBox 控件的 Text 属性 |
2.
|
DOB | - txtDOB TextBox 控件的 Text 属性 |
3.
|
ButtonCaption | - btnResult Button 控件的 Text 属性 |
创建 AgeCalWCC 的步骤
-
打开新的 Web 控件库应用程序。
文件 -> 新建项目 -> (项目类型列) Visual Basic -> windows -> (模板列) Web 控件库 -> (名称文本框) AgeCalWCC
请参阅图 2
-
在解决方案资源管理器中将 webcontrollibrary.vb 重命名为 AgeCalWCC.vb。
请参阅图 3
- 删除 AgeCalWCC.vb 中的所有代码,并键入 CODE SECTION II 中提到的代码
-
生成 -> 生成 AgeCalWCC
请参阅图 4
-
现在 AgeCalWCC.dll 准备好使用了。
-
打开新的 ASP.NET Web 站点应用程序,并将 AgeCalWCC.dll 添加到工具箱
右键单击工具箱 -> 选择项… -> 浏览 AgeCalWCC.dd
现在 AgeCalWCC 将作为 Web 自定义控件出现在工具箱中。您可以像其他 Web 控件一样使用此控件。
代码 SECTION I
我们应该在代码后台页面中添加控件,以开发 Web 自定义控件。以下代码将添加 TextBox 控件
Dim txtName as New TextBox
txtName.ID = “txtName”
Controls.add(txtName)
代码 SECTION II
以下列出的代码是自解释的,并在编码部分中进行了注释,因此无需对 AgeCalWCC 代码进行更多解释。
'______________________________________________________________________________________________________
'
' Age Calculation Web Custom Control [AgeCalWCC]
'
' This AgeCalWCC is developed by using ASP.NET 2.0 with VB Coding
'______________________________________________________________________________________________________
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace AgeCalWebCustomControls
Public Class AgeCalWCC
''''''''''''''''''''''''''''''''''' Variable Declaration Section Start '''''''''''''''''''''''''''''
Inherits Control
Implements INamingContainer
' Controls used in the AgeCalWCC
Dim txtName As New TextBox
Dim txtDOB As New TextBox
Dim btnResult As New Button
Dim lblResult As New Label
' Properties used in the AgeCalWCC
Private _DOB As Date = Format(Now, "yyyy-MM-dd")
Private _Name As String
Private _ButtonCaption As String = "Result"
''''''''''''''''''''''''''''''''''' Variable Declaration Section End '''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''Property Declaration Section Start '''''''''''''''''''''''''''''''
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Public Property DOB() As Date
Get
Return _DOB
End Get
Set(ByVal value As Date)
_DOB = value
End Set
End Property
Public Property ButtonCaption() As String
Get
Return _ButtonCaption
End Get
Set(ByVal value As String)
_ButtonCaption = value
End Set
End Property
''''''''''''''''''''''''''''''''''' Property Declaration Section End ''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''' CreateChildControls() Start ''''''''''''''''''''''''''''''''''''
Protected Overrides Sub CreateChildControls()
Dim TableString As String
' HTML table string
TableString = ""
TableString = TableString & "<table id='tblAgeCalWCC' width='100%'border='0'>"
TableString = TableString & "<tr>"
TableString = TableString & "<td width='25%'> </td>"
TableString = TableString & "<td width='10%'> </td>"
TableString = TableString & "<td width='25%'> </td>"
TableString = TableString & "<td width='16%'> </td>"
TableString = TableString & "<td width='24%'> </td>"
TableString = TableString & "</tr>"
TableString = TableString & "<tr>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td><font face='Verdana, Arial, Helvetica, sans-serif'>Name:</font></td>"
TableString = TableString & "<td>"
Controls.Add(New LiteralControl(TableString))
' TextBox control for User's Name
txtName.ID = "txtName"
txtName.Text = _Name
Controls.Add(txtName)
' HTML table string
TableString = ""
TableString = TableString & "</td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "</tr>"
TableString = TableString & "<tr>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td><font face='Verdana, Arial, Helvetica, sans-serif'>DOB:</font></td>"
TableString = TableString & "<td>"
Controls.Add(New LiteralControl(TableString))
'TextBox control for user's DOB
txtDOB.ID = "txtDOB"
txtDOB.Text = DOB
Controls.Add(txtDOB)
' HTML table string
TableString = ""
TableString = TableString & "</td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "</tr>"
TableString = TableString & "<tr>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td colspan='2' align=center> "
Controls.Add(New LiteralControl(TableString))
'Button control for triggering the calculation
btnResult.ID = "btnResult"
btnResult.Text = _ButtonCaption
Controls.Add(btnResult)
AddHandler btnResult.Click, AddressOf Me.btnResult_Click
'HTML table string
TableString = ""
TableString = TableString & "</td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "</tr>"
TableString = TableString & "<tr>"
TableString = TableString & "<td> </td>"
TableString = TableString & "<td colspan='3'> <font face='Verdana, Arial, Helvetica, sans-serif'>"
Controls.Add(New LiteralControl(TableString))
'Label control for displaying the result
lblResult.ID = "lblResult"
lblResult.Text = ""
Controls.Add(lblResult)
'HTML table control
TableString = ""
TableString = TableString & "</font></td>"
TableString = TableString & "<td> </td>"
TableString = TableString & "</tr>"
TableString = TableString & "</table>"
Controls.Add(New LiteralControl(TableString))
End Sub
''''''''''''''''''''''''''''''''''' CreateChildControls() End ''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''' Click Event of the btnResult Start ''''''''''''''''''''''''''''''
'
' This function tring when user click the btnResult button control
' This function calls AgeCalFun with two input arguments
'
Private Sub btnResult_Click(ByVal obj As System.Object, ByVal e As System.EventArgs)
lblResult.Text = AgeCalFun(txtName.Text, txtDOB.Text)
End Sub
''''''''''''''''''''''''''''''''''' Click Event of the btnResult End ''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''' AgeCalFun() Start '''''''''''''''''''''''''''''''''''''''''''''''
'
' This function calculates the users age (appoximate) using his/her Date Of Birth
' It is return the output as a string format
'
Private Function AgeCalFun(ByVal Name As String, ByVal DOB As String) As String
Dim YearDOB, YearCurrent, MonthDOB, MonthCurrent, DayDOB, DayCurrent, YearCal, MonthCal, DayCal As Integer
Dim Result As String
If IsDate(DOB) Then
YearDOB = Year(DOB)
MonthDOB = Month(DOB)
DayDOB = Day(DOB)
YearCurrent = Year(Now)
MonthCurrent = Month(Now)
DayCurrent = Day(Now)
If DayCurrent < DayDOB Then
DayCurrent = DayCurrent + 30
MonthCurrent = MonthCurrent - 1
End If
If MonthCurrent < MonthDOB Then
MonthCurrent = MonthCurrent + 12
YearCurrent = YearCurrent - 1
End If
DayCal = DayCurrent - DayDOB
MonthCal = MonthCurrent - MonthDOB
YearCal = YearCurrent - YearDOB
Result = Name & " your age is " & _
Format(YearCal, "00") & " year(s), " & _
Format(MonthCal, "00") & " month(s) and " & _
Format(DayCal, "00") & " day(s)"
Else
Result = "Incorrect Date."
End If
Return Result
End Function
''''''''''''''''''''''''''''''''''' AgeCalFun() End '''''''''''''''''''''''''''''''''''''''''''''''''
End Class
End Namespace