views:

36

answers:

1

This is similar to my last post but with a different purpose.

I have built a custom control, but when I set the properties for it... ALL instances of that control on my page grab the exact same property. I need to be able to set the property to "abc" for one instance of the control on my page, and then set the exact same proprty to "xyz" for a different instance of the control on the same page.

Can anyone shed any light?

Namespace CustomControl
Public Class mycontrol : Inherits Literal
    Protected Overrides Sub CreateChildControls()
        Dim value As String = "test"
        If _doubleit = True Then
            value = value & " test"
        End If

        MyBase.Text = value
        MyBase.CreateChildControls()
    End Sub

    Private Shared _doubleit As Boolean = True
    Public Shared Property doubleit() As Boolean
        Get
            Return _doubleit
        End Get
        Set(ByVal value As Boolean)
            _doubleit = value
        End Set
    End Property
End Class

End Namespace

+2  A: 

Remove the Shared from your variable and from your property declaration. Shared means exactly that what you don't want: All instances share the same value.

So, your code should look like this:

Private _doubleit As Boolean = True
Public Property doubleit() As Boolean
    Get
        Return _doubleit
    End Get
    Set(ByVal value As Boolean)
        _doubleit = value
    End Set
End Property
Heinzi
It's just that simple... Thanks!
rockinthesixstring