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

  • 相关阅读:
    [javaSE] 数组(获取最值)
    [javascript] Promise简单学习使用
    [javaSE] 基本类型(String相关)
    [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
    [PHP] 重回基础(IO流)
    [PHP] 重回基础(Array相关函数)
    [PHP] 重回基础(date函数和strtotime函数)
    [HTML5] Canvas绘制简单图片
    [javaSE] 集合框架(TreeSet)
    [android] 手机卫士黑名单功能(ListView优化)
  • 原文地址:https://www.cnblogs.com/Dincat/p/13437528.html
Copyright © 2011-2022 走看看