Hello,
I am creating a control which I will compile in a class.
I am having problems when I use a property in the View State:
' Items
<Bindable(True), Category("Data"), DefaultValue(""),
Localizable(True)> _
Property Items() As Generic.List(Of String)
Get
If ViewState("Items") Is Nothing Then
Return New Generic.List(Of String)
Else
Return ViewState("Items")
End If
End Get
Set(ByVal Value As Generic.List(Of String))
ViewState("Items") = Value
End Set
End Property ' Items
But I don't get problems if I use it in Control State:
Private _Items As New Generic.List(Of String)
Public Property Items() As Generic.List(Of String)
Get
Return _Items
End Get
Set(ByVal value As Generic.List(Of String))
_Items = value
End Set
End Property ' Items
Anyway, this is a little bit confusing to me.
Could someone tell me which one should I use?
I am working on ASP.NET 2.0.
Thanks,
Miguel
shapper wrote:
> Hello,
> I am creating a control which I will compile in a class.
> I am having problems when I use a property in the View State:
> ' Items
> <Bindable(True), Category("Data"), DefaultValue(""),
> Localizable(True)> _
> Property Items() As Generic.List(Of String)
> Get
> If ViewState("Items") Is Nothing Then
> Return New Generic.List(Of String)
> Else
> Return ViewState("Items")
> End If
> End Get
> Set(ByVal Value As Generic.List(Of String))
> ViewState("Items") = Value
> End Set
> End Property ' Items
I guess all the problems are caused by continuous creation of a new
List object
every time you ask for Items property. Try this:
Property Items() As Generic.List(Of String)
Get
If ViewState("Items") Is Nothing Then ViewState("Items") = New
Generic.List(Of String)
Return ViewState("Items")
End Get
Set(ByVal Value As Generic.List(Of String))
ViewState("Items") = Value
End Set
End Property
Regards, Mykola
http://marss.co.ua