特定の列挙型のすべての可能な値のリストを提供するコードがあります
。ウェブページのドロップダウンリストにかなり頻繁にバインドしています。
現在、タイプ名をパラメーターとして受け入れるユーザーコントロールを作成しようとしています。
私のサブがタイプパラメータを期待するので、 値リスト
Shared Function EnumList(ByVal EnumType As Type) As List(Of ListItem)
Dim ret As New List(Of ListItem)
Dim consts = [Enum].GetValues(EnumType)
For Each c In consts
ret.Add(New ListItem With {.Text = c.ToString, .Value = c.ToString})
Next
Return ret
End Function
ユーザーコントロール宣言で使用される文字列を型に変換しようとしています。問題は、システムタイプでしかできないことです(mscorlibでなくても、少し不器用です)。しかし、私のapp_codeで宣言された列挙型の場合
、aqnが次のような面白いコードで文字列を作成する方法がわかりません(AstroDateは私のクラスの名前です):
"AstroDate、App_Code.rujpwg3d、Version = 0.0.0.0 、Culture=neutral、PublicKeyToken=null」
ですが、gettypeで使用するとエラーになります
お知らせ下さい
ここで編集 は、列挙型のリストを取得しようとするユーザーコントロールのコードです
Sub RefillData()
Dim TempValue = Value
MainList.Items.Clear()
MainList.DataSource = EnumList(Type.GetType(EnumType, True, True))
If EmptyText <> "" Then
Dim itm As New ListItem(EmptyText, "")
MainList.Items.Add(itm)
End If
MainList.DataBind()
Value = TempValue
End Sub
「EnumType」は、ページ内のユーザー コントロールの宣言で渡される文字列プロパティです。