zoukankan      html  css  js  c++  java
  • 将枚举绑定到下拉列表框并根据值对其排序

    介绍 这篇文章是为那些想要将Web/Window窗体中的DropdownListbox控件绑定到枚举数据类型的人准备的。 背景 有时,我们希望将枚举绑定到Dropdownlistbox,而不是从数据库获取数据,然后将其绑定到Dropdownlistbox。这里我解释了如何绑定您在公共类/实用类代码中定义的枚举。 使

      

    用的代码 这真的很简单。让我们看一下下面的代码片段。下面是我的Enum,它定义了PhoneNumberType: 隐藏,复制Code

    Public Enum PhoneNumberType As Integer
        [Select] = -1
        Home = 0
        Mobile = 1
        Work = 2
    End Enum

    现在,要将这样的枚举绑定到您的DropdownListbox,您所需要做的就是创建任何类型的变量,比如SortedList(of TKeys,TValues)、Dictionary等,然后将该变量分配到您的DropdownListbox的DataSource属性。我使用SortedList进行绑定。 隐藏,收缩,复制Code

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _
    	Handles MyBase.Load, Me.Load
    
                If (Not Me.IsPostBack) Then
                    Me._presenter.OnViewInitialized()
                    Dim phoneTypes As SortedList(Of Integer, String)
                    phoneTypes = GetEnumDataSource(Of PhoneNumberType)()
                    If Not (phoneTypes Is Nothing) Then
                        drplstPhoneType.DataSource = phoneTypes
                        drplstPhoneType.DataValueField = "Key"
                        drplstPhoneType.DataTextField = "Value"
                        drplstPhoneType.DataBind()
                    End If
                End If
    End Sub
    
    Public Function GetEnumDataSource(Of T)() As SortedList(Of Integer, String)
                Dim myEnumType As Type = GetType(T)
                Dim returnCollection As SortedList(Of Integer, String) = _
    				New  SortedList(Of Integer, String)
                Try
                    If myEnumType.BaseType Is GetType([Enum]) Then
                        Dim enumNames() As String = [Enum].GetNames(myEnumType)
                        For i As Integer = 0 To (enumNames.Length - 1)
                            returnCollection.Add(Convert.ToInt32([Enum].Parse_
    				(myEnumType, enumNames(i))), enumNames(i))
                        Next
                    End If
                Catch ex As Exception
                    Return Nothing
                End Try
                Return returnCollection
            End Function

    的兴趣点 我在这里所做的是用我的EnumData类型的值和文本填充了SortedList。现在,如果您仔细观察代码片段,我已经解决了另一个问题,即使用条目的值对DropdownListbox进行排序。 由于SortedList能够通过它的“键”对项目进行排序,我在这里所做的是为“键”,我已经使用了枚举的值,为值,我已经使用了枚举的文本。在此之前,情况正好相反。我已经用枚举的文本作为键和枚举的值作为排序列表的值填充了SortedList。在本例中,SortedList将返回按键排序的列表。但因为我想“选择”选项在顶部与-1的值,我所做的不是定义SortedList(字符串,整型),我已经定义了SortedList(整型,字符串),并填充了所有的Enum值作为键的SortedList和文本作为值的SortedList。 历史 2008年5月12日:初始职位 本文转载于:http://www.diyabc.com/frontweb/news326.html

  • 相关阅读:
    Centos6.5环境中安装vsftp服务
    MySQL数据库的数据备份和恢复(导入和导出)命令操作语法【转】
    linux系统被入侵后处理经历【转】
    Linux lsof命令详解和使用示例【转】
    Oracle 表空间和用户权限管理【转】
    如何在 Linux 中找出最近或今天被修改的文件
    Linux 服务器系统监控脚本 Shell【转】
    1张图看懂RAID功能,6张图教会配置服务器【转】
    简析TCP的三次握手与四次分手【转】
    TCP协议中的三次握手和四次挥手(图解)【转】
  • 原文地址:https://www.cnblogs.com/Dincat/p/13437528.html
Copyright © 2011-2022 走看看