Custom web control string

  • Thread starter Thread starter shapper
  • Start date Start date
S

shapper

Hello,

I am creating a custom web control where one of its properties is a
generic list:

<Bindable(True), Category("Format"), DefaultValue(""),
Localizable(True)> Property Features() As Generic.List(Of Feature)
Get
If CStr(ViewState("Features")) Is Nothing Then
Return String.Empty
Else
Return CStr(ViewState("Features"))
End If
End Get
Set(ByVal Value As String)
ViewState("Features") = Value
End Set
End Property ' Features

This is the default way to create a property in a web control, as far
as I know.

I am getting an error saying that string cannot be converted to a
generic list.

How should I create my property?

Thanks,

Miguel
 
Hi Miguel,

in the DefaultValue attribute you can assign a value to this property when
it is being created. It works in the same way as if you said:
Dim defaultValue as String
myInstance.Features = defaultValue

This code would raise an exception, too.
You should either set the DefaultValue attribute to Nothing or assign some
proper value.

Are you experienced in developing server controls? I'm having trouble with
properties that should be influenced by Themes.
Do you think you could be of help there?

Best Regards,
Nico
 
Most likely this:
Get
If CStr(ViewState("Features")) Is Nothing Then
Return String.Empty

-- is what's causing it. You've defined the property type as List<Feature>
but your get accessor wants to return String.Empty, which obviously
is a different type than List<Feature>, make sense?

HTH,
Peter
 
Back
Top