Um... that was nice. But it doesn't even address the issue I'm having,
let alone solve it. Can you please explain what your point was?
You have Dim PriorState() As Object = CType(savedState, Object()),
which is no different than my Dim myState As Object() =
CType(savedState, Object()). Not significantly different, at any rate.
And it's the CType(savedState, Object()) part that's giving me an
error.
Does anyone have any idea why I'd be getting an error trying to convert
savedState into Object()?
Thanks,
Lisa
[quoted text, click to view] recoil@community.nospam wrote:
> Imports System.ComponentModel
> Imports System.Web.UI
>
> <DefaultProperty("Text"), ToolboxData("<{0}:SampleControl
> runat=server></{0}:SampleControl>")> Public Class SampleControl
> Inherits System.Web.UI.WebControls.WebControl
> Dim gMyNumber As Int32
> Dim gMyDate As DateTime
> Dim _text As String
> Dim WithEvents btnTestPostback As New Button
> Dim WithEvents btnIncrementNumber As New Button
>
> <Bindable(True), Category("Appearance"), DefaultValue("")>
Property
> [Text]() As String
> Get
> Return _text
> End Get
>
> Set(ByVal Value As String)
> _text = Value
> End Set
> End Property
> <Bindable(True), Category("Appearance"), DefaultValue("")> Property
> [MyNumber]() As Int32
> Get
> Return gMyNumber
> End Get
>
> Set(ByVal Value As Int32)
> gMyNumber = Value
> End Set
> End Property
> <Bindable(True), Category("Appearance"), DefaultValue("")> Property
> [MyDate]() As DateTime
> Get
> Return gMyDate
> End Get
>
> Set(ByVal Value As DateTime)
> gMyDate = Value
> End Set
> End Property
>
>
> Protected Overrides Sub LoadViewState(ByVal savedState As Object)
> If Not (savedState Is Nothing) Then
> Dim PriorState() As Object = CType(savedState, Object())
> MyBase.LoadViewState(PriorState(0)) ' Calls Base and passes this
> on. Always do this so that inheritance is easy
> MyNumber = CType(PriorState(1), Int32) ' Remember to Load these
up
> in the same manner that you saved them.
> MyDate = CType(PriorState(2), DateTime)
> End If
> End Sub
>
> Protected Overrides Function SaveViewState() As Object
> Dim StateToSave(3) As Object
> StateToSave(0) = MyBase.SaveViewState() ' Calls Base and Gets
this.
> Always do this so that inheritance is easy. Also ensures things like
> Enabled etc work properly.
> StateToSave(1) = MyNumber
> StateToSave(2) = MyDate
> Return StateToSave
> End Function
>
> Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
> Me.Controls.Add(btnTestPostback)
> Me.Controls.Add(btnIncrementNumber)
> btnTestPostback.ID = "btnTestPostback"
> btnTestPostback.Text = "Test Postback"
> btnIncrementNumber.ID = "btnIncrementNumber"
> btnIncrementNumber.Text = "Increment Number"
>
> End Sub
>
> Protected Overrides Sub Render(ByVal writer As
> System.Web.UI.HtmlTextWriter)
> writer.Write("Number is " + MyNumber.ToString() + " and date is " +
> MyDate.ToShortDateString() + "<br />")
> MyBase.Render(writer)
> End Sub
>
> Private Sub btnIncrementNumber_Click(ByVal sender As Object, ByVal e
> As System.EventArgs) Handles btnIncrementNumber.Click
> MyNumber = MyNumber + 1
> End Sub
> End Class