Still working on my collection issues

Discussion in 'ASP .Net Building Controls' started by Stanley, Feb 4, 2004.

  1. Stanley

    Stanley Guest

    Hello all, (again)
    I am still working on the issues I have had using a custom collection in my
    custom control. I decided to start from scratch while reading "Developing
    Microsoft ASP.NET Server Controls and Components". I believe I have gottn
    past my last issue but now i have a new one I do not understand. I can add
    my items to the collection and they appear fine, but the minute I run the
    ASP.NET page with the control loaded I get an error on the control in the
    designer. The controls seems to work fine in the page. As you can see below
    I am just outputing the number of Cars in the collection to see if things
    persist to the page at runtime and they do. But on the controller I get the
    error:

    [error]
    'CarsCollection' could not be initialized.
    [/error]

    I'm stumped here and I am sure it is something simple I am missing but I
    cannot find it. Please help.

    TIA

    -Stanley

    Code:
    Imports System.ComponentModel
    Imports System.ComponentModel.Design
    Imports System.Drawing.Design
    Imports System.Web.UI
    
    <ToolboxData("<{0}:CarControl runat=server></{0}:CarControl>")> Public Class
    CarControl
    Inherits System.Web.UI.WebControls.WebControl
    
    Private _cars As New Cars
    
    Protected Overrides Sub Render(ByVal output As
    System.Web.UI.HtmlTextWriter)
    output.Write("Cars Collection=" & _cars.Count.ToString)
    End Sub
    
    <Editor(GetType(myCollectionEditor), GetType(UITypeEditor)), _
    
    DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _
    PersistenceMode(PersistenceMode.InnerProperty), _
    NotifyParentProperty(True)> _
    Public ReadOnly Property CarsCollection() As Cars
    Get
    Return _cars
    End Get
    End Property
    
    
    
    End Class
    
    
    Public Class Car
    
    #Region "Private Variables"
    Private _year As String
    Private _model As CarModels
    Private _transmission As TransmissionType
    Private _extColor As Drawing.Color
    Private _intColor As Drawing.Color
    #End Region
    
    #Region "Pulic Enumerations"
    Public Enum CarModels
    Cavilier
    Escort
    Tundra
    End Enum
    
    Public Enum TransmissionType
    Automatic
    Manual
    End Enum
    #End Region
    
    #Region "Public Properties"
    Public Property ModelYear() As String
    Get
    Return _year
    End Get
    Set(ByVal Value As String)
    _year = Value
    End Set
    End Property
    
    Private Property Model() As CarModels
    Get
    Return _model
    End Get
    Set(ByVal Value As CarModels)
    _model = Value
    End Set
    End Property
    
    Public Property Transmission() As TransmissionType
    Get
    Return _transmission
    End Get
    Set(ByVal Value As TransmissionType)
    _transmission = Value
    End Set
    End Property
    
    Public Property ExteriorColor() As Drawing.Color
    Get
    Return _extColor
    End Get
    Set(ByVal Value As Drawing.Color)
    _extColor = Value
    End Set
    End Property
    
    Public Property InterierColor() As Drawing.Color
    Get
    Return _intColor
    End Get
    Set(ByVal Value As Drawing.Color)
    _intColor = Value
    End Set
    End Property
    #End Region
    
    End Class
    <Serializable()> _
    Public Class Cars
    Inherits CollectionBase
    #Region "Private Variables"
    Private items As ArrayList
    #End Region
    
    #Region "Public Methods"
    
    Public Sub New()
    items = New ArrayList
    End Sub
    
    Public Sub New(ByVal initialCount As Integer)
    items = New ArrayList(initialCount)
    End Sub
    
    Public Sub CopyTo(ByVal array As System.Array, ByVal index As Integer)
    Dim i As Integer
    If ((array.Length - index) >= Me.Count) Then
    For i = 0 To Me.Count
    array.SetValue(items(i), index + i)
    Next
    Else
    Throw New System.ArgumentException("The Array to Copy To must
    have enough elements to copy all the items from this collection.", "Array")
    End If
    End Sub
    
    Public Shadows ReadOnly Property Count() As Integer
    Get
    Return items.Count
    End Get
    End Property
    
    Public ReadOnly Property IsSynchronized() As Boolean
    Get
    Return items.IsSynchronized
    End Get
    End Property
    
    Public ReadOnly Property SyncRoot() As Object
    Get
    Return items.SyncRoot
    End Get
    End Property
    
    Public Shadows Function GetEnumerator() As
    System.Collections.IEnumerator
    Return items.GetEnumerator
    End Function
    
    Public Function add(ByVal car As Car) As Integer
    items.Add(car)
    End Function
    
    Public Shadows Sub Clear()
    items.Clear()
    End Sub
    
    Public Function Contains(ByVal car As Object) As Boolean
    Return items.Contains(car)
    End Function
    
    Public Function IndexOf(ByVal car As Car)
    Return items.IndexOf(car)
    End Function
    
    Public Sub Insert(ByVal index As Integer, ByVal car As Car)
    items.Insert(index, car)
    End Sub
    
    Public ReadOnly Property IsFixedSize() As Boolean
    Get
    Return items.IsFixedSize
    End Get
    End Property
    
    Public ReadOnly Property IsReadOnly() As Boolean
    Get
    Return items.IsFixedSize
    End Get
    End Property
    
    Default Public Property Item(ByVal index As Integer) As Object
    Get
    Return items(index)
    End Get
    Set(ByVal Value As Object)
    If Value.GetType Is GetType(Car) Then
    Me(index) = Value
    End If
    End Set
    End Property
    
    Public Sub Remove(ByVal car As Car)
    items.Remove(car)
    End Sub
    
    Public Shadows Sub RemoveAt(ByVal index As Integer)
    items.RemoveAt(index)
    End Sub
    #End Region
    
    End Class
    
    
    Public Class myCollectionEditor
    Inherits CollectionEditor
    
    
    Public Sub New(ByVal type As Type)
    MyBase.New(type)
    End Sub
    
    
    Protected Overrides Function CreateCollectionItemType() As Type
    Return GetType(Car)
    End Function
    
    End Class
    
    
    
    --
    Site: http://www.glass-images.com
    Blog: http://blogs.wwwcoder.com/darian1271/
    WWWCoder Articles: http://tinyurl.com/ypnyz
    Stanley, Feb 4, 2004
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dylan
    Replies:
    5
    Views:
    417
    Daniel T.
    Mar 22, 2005
  2. Pradeep
    Replies:
    2
    Views:
    678
    Patricia Shanahan
    Jan 24, 2007
  3. Øyvind Isaksen
    Replies:
    1
    Views:
    960
    Øyvind Isaksen
    May 18, 2007
  4. Hemant

    create collection of collection

    Hemant, Oct 22, 2009, in forum: ASP .Net
    Replies:
    1
    Views:
    417
    Gregory A. Beamer
    Oct 22, 2009
  5. Stanley

    Still having collection issues

    Stanley, Feb 2, 2004, in forum: ASP .Net Building Controls
    Replies:
    2
    Views:
    166
    Stanley
    Feb 3, 2004
Loading...

Share This Page