[自定义服务器控件] 第二步:下拉列表框。

前面发了一个文本框的,这回发一个下拉列表框。


一般在写自定义控件之前都要考虑一下原来的控件(系统代的)有什么优缺点,有哪些功能是我想要的,但是自带的控件没有提供,或者提供的不是太理想。

那么对于 下拉列表框 我个人感觉有几个地方用着不是太方便。

1、绑定数据库。
当下拉列表框里的数据需要从数据库里提取的时候,就需要设置DataValueField 和 DataTextField 的属性,每次用的时候都要设置一下,这个比较烦。
(不好意思,我比较懒)
我的方法是在自定义控件的OnInit 时间里面加上

Me.CssClass = "lst"
Me.DataValueField = "ID"
Me.DataTextField = "txt"
Me.Font.Size = FontUnit.Point(9)

这就方便多了,只是在写SQL语句的时候需要使用别名的方式,修改字段的名称,以便适应 ID和txt。

如果您不喜欢这种方式的话,可以略过。:)

2、设置选定的选项。

在修改数据的时候,往往需要根据已经保存的数据来设置下拉列表框的第几个选项是被选中的,以便于修改。(不知道我有没有说清楚,表达能力还有待提高。)

当然系统的下拉列表框提供了这个功能,

Me.Items.FindByText("125").Selected = True
Me.SelectedValue = "125";
其他方法略。

可以用这种几方法来设置,但是这里有一个共同小问题,就是当下拉列表框的item里面没有“125” 的时候会抛出异常。

对于框架来说这么做没有什么问题,但是对于客户就不好了。

当然这个是可以避免的,一是检查是否出现异常,要不就是确保数据是完整的,绝对不会出现这种在item里面找不到值的情况。

但是我比较懒,不像写太多的代码来预防这些事情。

我写了一个 SetSelectedByValue (ByVal listValue As String) 的方法来设置,这样就方便多了。


3、添加月份、日期等信息。

如果需要写一个下拉列表框,这个框里面要放置12个月份,还要写个循环或者在.aspx里面设置。我设了一个偷懒的方法。

4、其他的常用的填充方法。

您可以把您常用的填充的数据放在自定义控件里面,调用的时候就会方便很多。

5、验证。

这个和 文本框是一样的,也是使用正则的方式来验证。这里主要验证是否选择了一个选项。
比如:第一个item是“请选择”,而这个下拉列表框又必须有一个选项(当然不能选第一个了),这个时候就需要验证一下。

6、实现接口

和文本框一样实现了下面的几个接口
属性(接口):
ControlKind  返回控件的类型。

函数(接口):
GetValue() 获取文本框的值,默认返回   TextTrim
GetValue(ByVal kind As String) 根据 kind 获取对应的文本框的值。

SetValue(ByVal value As String) 给文本框赋值
SetValue(ByVal value As String, ByVal kind As String)给文本框赋值


好像有点乱,感兴趣的话看看下面的代码吧。

[自定义服务器控件] 第二步:下拉列表框。<DefaultProperty("Text"), ToolboxData("")> _
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。 Public Class HBSDropDownListClass HBSDropDownList
[自定义服务器控件] 第二步:下拉列表框。    Inherits System.Web.UI.WebControls.DropDownList
[自定义服务器控件] 第二步:下拉列表框。    Implements IGetControlValue
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    Dim _dataType As String = "101"  '数据类型
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。实现接口#Region "实现接口"
[自定义服务器控件] 第二步:下拉列表框。    <Bindable(True), Category("默认值"), DefaultValue("205"), Description("获取控件类别")> _
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。      ReadOnly Property ControlKind()Property ControlKind() As String Implements IGetControlValue.ControlKind
[自定义服务器控件] 第二步:下拉列表框。        Get
[自定义服务器控件] 第二步:下拉列表框。            Return "205"
[自定义服务器控件] 第二步:下拉列表框。        End Get
[自定义服务器控件] 第二步:下拉列表框。    End Property
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Function GetValue()Function GetValue() As String Implements IGetControlValue.GetControlValue
[自定义服务器控件] 第二步:下拉列表框。        Return Me.SelectedValue
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Function
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Function GetValue()Function GetValue(ByVal kind As String) As String Implements IGetControlValue.GetControlValue
[自定义服务器控件] 第二步:下拉列表框。        Return ""
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Function
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub SetValue()Sub SetValue(ByVal value As String) Implements IGetControlValue.SetControlValue
[自定义服务器控件] 第二步:下拉列表框。        Me.SetSelectedByValue(value)
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub SetValue()Sub SetValue(ByVal value As String, ByVal kind As String) Implements IGetControlValue.SetControlValue
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。初始化 OnInit。设置CssClass、DataValueField、DataTextField、#Region "初始化 OnInit。设置CssClass、DataValueField、DataTextField、"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Protected Overrides Sub OnInit()Sub OnInit(ByVal e As EventArgs)
[自定义服务器控件] 第二步:下拉列表框。        Me.CssClass = "lst"
[自定义服务器控件] 第二步:下拉列表框。        Me.DataValueField = "ID"
[自定义服务器控件] 第二步:下拉列表框。        Me.DataTextField = "txt"
[自定义服务器控件] 第二步:下拉列表框。        Me.Font.Size = FontUnit.Point(9)
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        'Me.Style.Add("ime-mode", "disabled;")
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Me.Items.FindByValue("125").Selected = True
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。验证类型#Region "验证类型"
[自定义服务器控件] 第二步:下拉列表框。    <Category("数据验证"), Description("验证输入的内容,需要js脚本配合。"), DefaultValue("101")> _
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Property CheckDataType()Property CheckDataType() As String
[自定义服务器控件] 第二步:下拉列表框。        Set(ByVal Value As String)
[自定义服务器控件] 第二步:下拉列表框。            _dataType = Value
[自定义服务器控件] 第二步:下拉列表框。            '101        b不验证
[自定义服务器控件] 第二步:下拉列表框。            '102        z自然数
[自定义服务器控件] 第二步:下拉列表框。            '103        z整数
[自定义服务器控件] 第二步:下拉列表框。            '104        x小数
[自定义服务器控件] 第二步:下拉列表框。            '105        r日期
[自定义服务器控件] 第二步:下拉列表框。            '106        b必填
[自定义服务器控件] 第二步:下拉列表框。            Select Case Value
[自定义服务器控件] 第二步:下拉列表框。                Case "101" '不验证
[自定义服务器控件] 第二步:下拉列表框。                    'this.Attributes.Add("DataType","");
[自定义服务器控件] 第二步:下拉列表框。                Case "106" '必填项 == 必须选择
[自定义服务器控件] 第二步:下拉列表框。                    Me.Attributes.Add("check", "[1-9]{1}[0-9]*")
[自定义服务器控件] 第二步:下拉列表框。            End Select
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        End Set
[自定义服务器控件] 第二步:下拉列表框。        Get
[自定义服务器控件] 第二步:下拉列表框。            If _dataType Is Nothing Then
[自定义服务器控件] 第二步:下拉列表框。                Return ""
[自定义服务器控件] 第二步:下拉列表框。            End If
[自定义服务器控件] 第二步:下拉列表框。            Return _dataType
[自定义服务器控件] 第二步:下拉列表框。        End Get
[自定义服务器控件] 第二步:下拉列表框。    End Property
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    <Category("数据验证"), Description("验证输入的内容,传入正则表达式。"), DefaultValue("0")> _
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。   Property CheckDataReg()Property CheckDataReg() As String
[自定义服务器控件] 第二步:下拉列表框。        Set(ByVal Value As String)
[自定义服务器控件] 第二步:下拉列表框。            Me.Attributes.Add("check", Value)
[自定义服务器控件] 第二步:下拉列表框。        End Set
[自定义服务器控件] 第二步:下拉列表框。        Get
[自定义服务器控件] 第二步:下拉列表框。            If Me.Attributes.Item("check") Is Nothing Then
[自定义服务器控件] 第二步:下拉列表框。                Return ""
[自定义服务器控件] 第二步:下拉列表框。            End If
[自定义服务器控件] 第二步:下拉列表框。            Return Me.Attributes.Item("check").ToString()
[自定义服务器控件] 第二步:下拉列表框。        End Get
[自定义服务器控件] 第二步:下拉列表框。    End Property
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。验证错误的提示信息#Region "验证错误的提示信息"
[自定义服务器控件] 第二步:下拉列表框。    <Description("验证错误提示信息")> _
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。      Property CheckErrorMessage()Property CheckErrorMessage() As String
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        '添加提示信息
[自定义服务器控件] 第二步:下拉列表框。        Set(ByVal Value As String)
[自定义服务器控件] 第二步:下拉列表框。            ViewState("msg") = Value
[自定义服务器控件] 第二步:下拉列表框。            Me.Attributes.Add("warning", Value)
[自定义服务器控件] 第二步:下拉列表框。        End Set
[自定义服务器控件] 第二步:下拉列表框。        Get
[自定义服务器控件] 第二步:下拉列表框。            If (ViewState("msg") Is Nothing) Then
[自定义服务器控件] 第二步:下拉列表框。                Return ""
[自定义服务器控件] 第二步:下拉列表框。            Else
[自定义服务器控件] 第二步:下拉列表框。                Return ViewState("msg").ToString()
[自定义服务器控件] 第二步:下拉列表框。            End If
[自定义服务器控件] 第二步:下拉列表框。        End Get
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Property
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    '根据传入的ID设置下拉列表框的默认选项,如果没有找到,选第一项,不抛出异常。
[自定义服务器控件] 第二步:下拉列表框。    'ID值
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  setSelectedByValue#Region "函数实现  setSelectedByValue"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub SetSelectedByValue()Sub SetSelectedByValue(ByVal listValue As String)
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Me.SelectedIndex = -1
[自定义服务器控件] 第二步:下拉列表框。        If (listValue = "True") Then
[自定义服务器控件] 第二步:下拉列表框。            listValue = "1"
[自定义服务器控件] 第二步:下拉列表框。        End If
[自定义服务器控件] 第二步:下拉列表框。        If (listValue = "False") Then
[自定义服务器控件] 第二步:下拉列表框。            listValue = "0"
[自定义服务器控件] 第二步:下拉列表框。        End If
[自定义服务器控件] 第二步:下拉列表框。        Dim item As ListItem
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32 = 0
[自定义服务器控件] 第二步:下拉列表框。        For Each item In Me.Items
[自定义服务器控件] 第二步:下拉列表框。            If (item.Value.Equals(listValue)) Then
[自定义服务器控件] 第二步:下拉列表框。                ' item.Selected = True
[自定义服务器控件] 第二步:下拉列表框。                Me.SelectedIndex = i
[自定义服务器控件] 第二步:下拉列表框。                Return
[自定义服务器控件] 第二步:下拉列表框。            End If
[自定义服务器控件] 第二步:下拉列表框。            i = i + 1
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。        'Me.SelectedIndex = 0
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 根据传入的文本内容设置下拉列表框的默认选项,如果没有找到,选第一项,不抛出异常。
[自定义服务器控件] 第二步:下拉列表框。    ' 文本内容
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  SetSelectedByText#Region "函数实现  SetSelectedByText"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub SetSelectedByText()Sub SetSelectedByText(ByVal listText As String)
[自定义服务器控件] 第二步:下拉列表框。        Me.SelectedIndex = -1
[自定义服务器控件] 第二步:下拉列表框。        Dim item As ListItem
[自定义服务器控件] 第二步:下拉列表框。        For Each item In Me.Items
[自定义服务器控件] 第二步:下拉列表框。            If item.Text.Equals(listText) Then
[自定义服务器控件] 第二步:下拉列表框。                item.Selected = True
[自定义服务器控件] 第二步:下拉列表框。                Return
[自定义服务器控件] 第二步:下拉列表框。            End If
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。        'Me.SelectedIndex = 0
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息
[自定义服务器控件] 第二步:下拉列表框。    ' 查询语句
[自定义服务器控件] 第二步:下拉列表框。    ' 
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  bindList#Region "函数实现  bindList"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Function BindListBySQL()Function BindListBySQL(ByVal sqlString As String, ByVal isAddItem As Boolean) As String
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim dal = New DataAccessLayer
[自定义服务器控件] 第二步:下拉列表框。        'Me.DataSource = PublicClass.GetDataTableBySQL(sqlString)
[自定义服务器控件] 第二步:下拉列表框。        Me.DataSource = dal.RunSqlDataTable(sqlString)
[自定义服务器控件] 第二步:下拉列表框。        Me.DataBind()
[自定义服务器控件] 第二步:下拉列表框。        If isAddItem Then
[自定义服务器控件] 第二步:下拉列表框。            'Me.Items.Insert(0, New ListItem("请选择", "-2"))
[自定义服务器控件] 第二步:下拉列表框。        End If
[自定义服务器控件] 第二步:下拉列表框。        Return ""
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    End Function
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息
[自定义服务器控件] 第二步:下拉列表框。    ' 查询语句
[自定义服务器控件] 第二步:下拉列表框。    ' 
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  bindList#Region "函数实现  bindList"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Function BindListByStore()Function BindListByStore(ByVal store As String) As String
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim dal As New DataAccessLayer
[自定义服务器控件] 第二步:下拉列表框。        Me.DataSource = dal.RunStoreDataTable(store)
[自定义服务器控件] 第二步:下拉列表框。        Me.DataBind()
[自定义服务器控件] 第二步:下拉列表框。        Dim Err As String = dal.ErrorMsg
[自定义服务器控件] 第二步:下拉列表框。        dal.Dispose()
[自定义服务器控件] 第二步:下拉列表框。        If (Err.Length < 2) Then
[自定义服务器控件] 第二步:下拉列表框。            Return ""
[自定义服务器控件] 第二步:下拉列表框。        Else
[自定义服务器控件] 第二步:下拉列表框。            Return Err
[自定义服务器控件] 第二步:下拉列表框。        End If
[自定义服务器控件] 第二步:下拉列表框。    End Function
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 添加日期。给下拉列表框填充从 1 到 lastDay 的数据。value 和 text 值一致。
[自定义服务器控件] 第二步:下拉列表框。    ' 最后一天
[自定义服务器控件] 第二步:下拉列表框。    ' 是否添加 “请选择”
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  ItemAddDate#Region "函数实现  ItemAddDate"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub ItemAddDate()Sub ItemAddDate(ByVal lastDay As Int32)
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 1 To lastDay
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(i.ToString(), i.ToString()))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 添加月份。给下拉列表框填充从 1 到 12 的数据。value 和 text 值一致。
[自定义服务器控件] 第二步:下拉列表框。    ' 
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  ItemAddMonth#Region "函数实现  ItemAddMonth"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub ItemAddMonth()Sub ItemAddMonth()
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 1 To 12
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(i.ToString(), i.ToString()))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 用两个字符串来添加选项。
[自定义服务器控件] 第二步:下拉列表框。    ' 显示的内容,用的字符串,用“~”分开。
[自定义服务器控件] 第二步:下拉列表框。    ' value值,用的字符串,用“~”分开。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  AddItemByString#Region "函数实现  AddItemByString"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub AddItemByString()Sub AddItemByString(ByVal values As String, ByVal texts As String)
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim strText As String() = texts.Split("~")
[自定义服务器控件] 第二步:下拉列表框。        Dim strValue As String() = values.Split("~")
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 1 To strText.Length
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(strText(i), strValue(i)))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 用一个字符串来添加选项。value在前,Text在后
[自定义服务器控件] 第二步:下拉列表框。    ' 显示的内容,用的字符串,用“~”分开。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  AddItemByString#Region "函数实现  AddItemByString"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub AddItemByString()Sub AddItemByString(ByVal TextsAndValues As String)
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim str As String() = TextsAndValues.Split("~")
[自定义服务器控件] 第二步:下拉列表框。        Dim Len As Int32 = str.Length \ 2
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 0 To Len - 1
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(str(Len + i), str(i)))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 用两个数组来添加选项。
[自定义服务器控件] 第二步:下拉列表框。    ' 显示的内容。
[自定义服务器控件] 第二步:下拉列表框。    ' value值。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  AddItemByArray#Region "函数实现  AddItemByArray"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub AddItemByArray()Sub AddItemByArray(ByVal values As String(), ByVal texts As String())
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        For i = 0 To texts.Length
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(texts(i), values(i)))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 用一个数组来添加选项。values在前,Text在后
[自定义服务器控件] 第二步:下拉列表框。    ' 显示的内容,用的字符串,用“~”分开。
[自定义服务器控件] 第二步:下拉列表框。    ' 
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  AddItemByArray#Region "函数实现  AddItemByArray"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub AddItemByArray()Sub AddItemByArray(ByVal ValuesAndTexts As String())
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim len As Int32 = ValuesAndTexts.Length / 2
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 0 To len
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(ValuesAndTexts(len + i), ValuesAndTexts(i)))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 用一个二维数组来添加选项。values在前,Text在后
[自定义服务器控件] 第二步:下拉列表框。    ' 显示的内容,用的字符串,用“~”分开。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。函数实现  AddItemByArrayTwo#Region "函数实现  AddItemByArrayTwo"
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Public Sub AddItemByArrayTwo()Sub AddItemByArrayTwo(ByVal ValuesAndTexts As String(,))
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。        Dim len As Int32 = ValuesAndTexts.Length / 2 - 1
[自定义服务器控件] 第二步:下拉列表框。        Dim i As Int32
[自定义服务器控件] 第二步:下拉列表框。        For i = 0 To len
[自定义服务器控件] 第二步:下拉列表框。            Me.Items.Add(New ListItem(ValuesAndTexts(i, 1), ValuesAndTexts(i, 0)))
[自定义服务器控件] 第二步:下拉列表框。        Next
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。设置设计时的显示页面#Region " 设置设计时的显示页面"
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。    ' 将此控件呈现给指定的输出参数。
[自定义服务器控件] 第二步:下拉列表框。    '  要写出到的 HTML 编写器 
[自定义服务器控件] 第二步:下拉列表框。[自定义服务器控件] 第二步:下拉列表框。    Protected Overrides Sub Render()Sub Render(ByVal output As HtmlTextWriter)
[自定义服务器控件] 第二步:下拉列表框。        If ((Not MyBase.Site Is Nothing) AndAlso MyBase.Site.DesignMode) Then
[自定义服务器控件] 第二步:下拉列表框。            MyBase.Render(output)
[自定义服务器控件] 第二步:下拉列表框。        Else
[自定义服务器控件] 第二步:下拉列表框。            output.Write("")
[自定义服务器控件] 第二步:下拉列表框。            MyBase.Render(output)
[自定义服务器控件] 第二步:下拉列表框。            output.Write("")
[自定义服务器控件] 第二步:下拉列表框。        End If
[自定义服务器控件] 第二步:下拉列表框。    End Sub
[自定义服务器控件] 第二步:下拉列表框。#End Region
[自定义服务器控件] 第二步:下拉列表框。
[自定义服务器控件] 第二步:下拉列表框。End Class
[自定义服务器控件] 第二步:下拉列表框。




上一篇:call apply bind的区别


下一篇:vba-commandbutton,textbox,label最常用方法与属性以及个别事件