Hello,
I'm writing a custom user control for my asp.net site, for storing datetimes. It has two properties:
    Private _includeTime As Boolean
    Private _value As DateTime = Nothing
    Public Property IncludeTime() As Boolean
        Get
            Return _includeTime
        End Get
        Set(ByVal value As Boolean)
            _includeTime = value
        End Set
    End Property
    Public Property SelectedDateTime() As DateTime
        Get
            Try
                _value = DateTime.Parse(txtDate.Text)
                If IncludeTime Then
                    _value.AddHours(Short.Parse(txtHour.Text))
                    _value.AddMinutes(Short.Parse(txtMinute.Text))
                    _value.AddSeconds(Short.Parse(txtSecond.Text))
                End If
            Catch ex As Exception
                _value = Nothing
            End Try
            Return _value
        End Get
        Set(ByVal value As DateTime)
            _value = value
        End Set
    End Property
I call my custom control in this way:
<my:DateTimeInput runat="server" includetime="true" ID="txtWhen" />
This sets the includetime property correctly.
In my backend code I also do this on page_load:
txtWhen.SelectedDateTime = now
When I step through with the debugger, I see that the property gets set, BUT when the page_load of the control itself loads, the property value is reset to nothing!
The page_load of the control:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    lbltime.Visible = IncludeTime
    If SelectedDateTime().CompareTo(Nothing) > 0 Then
        txtDate.Text = SelectedDateTime.Date.ToShortDateString()
        txtHour.Text = SelectedDateTime.Hour.ToString("D2")
        txtMinute.Text = SelectedDateTime.Minute.ToString("D2")
        txtSecond.Text = SelectedDateTime.Second.ToString("D2")
    End If
End Sub
Any ideas why this property loses its value?