65.9K
CodeProject 正在变化。 阅读更多。
Home

年龄计算 Web 自定义控件

2008年5月1日

CPOL

2分钟阅读

viewsIcon

20959

downloadIcon

248

使用 ASP.NET 2.0 创建 Web 自定义控件

下载 AgeCalWCC 源代码文件 - 65.28 KB

下载 AgeCalWCC.dll 文件 - 5.59 KB

AgeCalWCC0.JPG

引言

Web 自定义控件是现有控件(如 TextBox、Label)的组合,用作单个控件。我们可以像其他 Web 控件一样,在所有 Web 应用程序中使用这种类型的控件。

年龄计算 Web 自定义控件 (AgeCalWCC) 使用 ASP.NET 2.0 和 VB 编码开发。AgeCalWCC 是一个 Web 自定义控件,用于使用用户的出生日期 (DOB) 计算用户的年龄。

此 AgeCalWCC 模块主要集中在 Web 自定义控件的创建上。该模块提供近似的年龄(为了最大限度地减少代码),以年、月和日为单位,从用户的出生日期 (DOB) 计算得出。

我相信,此 AgeCalWCC 模块对中级程序员创建 Web 自定义控件非常有帮助。

AgeCalWCC 输入/输出详情

AgeCalWCC1.JPG

变量命名

我使用驼峰命名法来表示控件(例如 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 的步骤

  1. 打开新的 Web 控件库应用程序。

    文件 -> 新建项目 -> (项目类型列) Visual Basic -> windows -> (模板列) Web 控件库 -> (名称文本框) AgeCalWCC

    请参阅图 2

    AgeCalWCC2.JPG

  2. 在解决方案资源管理器中将 webcontrollibrary.vb 重命名为 AgeCalWCC.vb。

    请参阅图 3

    AgeCalWCC3.JPG

  3. 删除 AgeCalWCC.vb 中的所有代码,并键入 CODE SECTION II 中提到的代码
  4. 生成 -> 生成 AgeCalWCC

    请参阅图 4

    AgeCalWCC4.JPG
  5. 现在 AgeCalWCC.dll 准备好使用了。

  6. 打开新的 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

结论

如果您对此 AgeCalWCC 模块有任何建议和问题,请在评论部分添加评论。

© . All rights reserved.