K
Kay
Hello,
I have written my own custom control and I want one of its properties to
display as a dropdown list when clicked, so the user can select from the
list, it would be similar to the asp textbox control which has a ‘TextMode’
property and when clicked on, displays as a dropdown list with 3 values, I
want to have a similar type property with a dropdown style.
So far, I have a property defined which displays the dropdown arrow when
clicked but does not expand, I also do not know how to populate the dropdown.
The dropdown needs to be populated with values read from the DB, the values
can be read into a Dataset/datareader (which I can do), so I need to know how
to bind these to a dropdown and have the dropdown assigned to the property.
So far I have the following:
1. My control
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Text
Imports System.Drawing
Imports UniversalDropdownEditor
Namespace CustomAddressControl
<DefaultProperty("Title"), ToolboxData("<{0}:Address
runat=server></{0}:Address>")> _
Public Class Address
Inherits System.Web.UI.WebControls.WebControl
Private iDataSource As String
<Description("The source/origin of the data."), _
Editor(GetType(EntryModeEditor), _
GetType(System.Drawing.Design.UITypeEditor))> _
Public Property DataSource() As String
Get
Return iDataSource
End Get
Set(ByVal Value As String)
iDataSource = Value
End Set
End Property
…………..
2. My EntryModeEditor Class
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class EntryModeEditor
Inherits System.Drawing.Design.UITypeEditor
Public Overloads Overrides Function EditValue(ByVal context As
System.ComponentModel.ITypeDescriptorContext, ByVal provider As
IServiceProvider, ByVal value As Object) As Object
Dim returnValue As Object = value
If Not (provider Is Nothing) Then
‘I DO NOT KNOW WHAT SHOULD GO IN HERE, TO POPULATE THE DROPDOWN AND GET OUT
THE VALUE THAT WAS SELECTED
End If
Return value
End Function
Public Overloads Overrides Function GetEditStyle(ByVal context As _
System.ComponentModel.ITypeDescriptorContext) As _
System.Drawing.Design.UITypeEditorEditStyle
If context Is Nothing Then
Return MyBase.GetEditStyle(context)
Else
Return System.Drawing.Design.UITypeEditorEditStyle.DropDown
End If
End Function
End Class
Any help/suggestions would be gratefully appreciated.
Thanks,
Kay.
I have written my own custom control and I want one of its properties to
display as a dropdown list when clicked, so the user can select from the
list, it would be similar to the asp textbox control which has a ‘TextMode’
property and when clicked on, displays as a dropdown list with 3 values, I
want to have a similar type property with a dropdown style.
So far, I have a property defined which displays the dropdown arrow when
clicked but does not expand, I also do not know how to populate the dropdown.
The dropdown needs to be populated with values read from the DB, the values
can be read into a Dataset/datareader (which I can do), so I need to know how
to bind these to a dropdown and have the dropdown assigned to the property.
So far I have the following:
1. My control
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Text
Imports System.Drawing
Imports UniversalDropdownEditor
Namespace CustomAddressControl
<DefaultProperty("Title"), ToolboxData("<{0}:Address
runat=server></{0}:Address>")> _
Public Class Address
Inherits System.Web.UI.WebControls.WebControl
Private iDataSource As String
<Description("The source/origin of the data."), _
Editor(GetType(EntryModeEditor), _
GetType(System.Drawing.Design.UITypeEditor))> _
Public Property DataSource() As String
Get
Return iDataSource
End Get
Set(ByVal Value As String)
iDataSource = Value
End Set
End Property
…………..
2. My EntryModeEditor Class
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class EntryModeEditor
Inherits System.Drawing.Design.UITypeEditor
Public Overloads Overrides Function EditValue(ByVal context As
System.ComponentModel.ITypeDescriptorContext, ByVal provider As
IServiceProvider, ByVal value As Object) As Object
Dim returnValue As Object = value
If Not (provider Is Nothing) Then
‘I DO NOT KNOW WHAT SHOULD GO IN HERE, TO POPULATE THE DROPDOWN AND GET OUT
THE VALUE THAT WAS SELECTED
End If
Return value
End Function
Public Overloads Overrides Function GetEditStyle(ByVal context As _
System.ComponentModel.ITypeDescriptorContext) As _
System.Drawing.Design.UITypeEditorEditStyle
If context Is Nothing Then
Return MyBase.GetEditStyle(context)
Else
Return System.Drawing.Design.UITypeEditorEditStyle.DropDown
End If
End Function
End Class
Any help/suggestions would be gratefully appreciated.
Thanks,
Kay.