Сохранение выбранных дат при видимых изменениях месяца - PullRequest
1 голос
/ 21 февраля 2011
Dim List As New List(Of DateTime)

Затем в моем событии нажатия кнопки:

 If InputBookinglength.SelectedValue.ToString = "2" Then 
            Dim paramstring As New StringBuilder
            If Session("SelectedDates") IsNot Nothing Then
                Dim newList As List(Of DateTime) = DirectCast(Session("SelectedDates"), List(Of DateTime))

                For Each dt As DateTime In newList
                    paramstring.Append(dt.ToShortDateString() & " - ")
                Next
            End If
  command.Parameters.AddWithValue("@multibookingdates", paramstring.tostring)

У меня тогда есть:

  Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Calendar1.DayRender
        If e.Day.IsSelected = True Then
            List.Add(e.Day.[Date])
        End If
        Session("SelectedDates") = List
    End Sub


Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
        If Session("SelectedDates") IsNot Nothing Then
            Dim newList As List(Of DateTime) = DirectCast(Session("SelectedDates"), List(Of DateTime))

            For Each dt As DateTime In newList
                Calendar1.SelectedDates.Add(dt)
            Next
            List.Clear()
        End If
    End Sub

    Protected Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) Handles Calendar1.VisibleMonthChanged
        If Session("SelectedDates") IsNot Nothing Then
            Dim newList As List(Of DateTime) = DirectCast(Session("SelectedDates"), List(Of DateTime))

            For Each dt As DateTime In newList
                Calendar1.SelectedDates.Add(dt)
            Next
            List.Clear()
        End If
    End Sub
End Class

Этот код прекрасно работает при выборе нескольких дней в месяце.Но при переключении на отображение другого месяца выбор предыдущих месяцев теряется.Подскажите, пожалуйста, как сохранить выбранные значения при изменении видимого месяца.

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2011

В этом случае самым быстрым способом получить желаемые результаты было опустить колесо и зубило и использовать сторонние элементы управления от obout (элемент управления Calendar).

Тогда захват нескольких дат так же прост, как и установка множественного выбора истинных значений:

 <obout:Calendar ID="MultiCalendar" runat="server" MultiSelectedDates="true" 
    Columns="1" CultureName="en-GB" TitleText="" ShowMonthSelector="true" 
    MonthSelectorType="DropDownList" >
    </obout:Calendar>

Затем я могу получить такие значения:

 Dim dateString As New StringBuilder
            For Each item As String In MultiCalendar.SelectedDates
                dateString.Append(item)
                dateString.Append(" - ")
            Next
            command.Parameters.AddWithValue("@multibookingdates", dateString.ToString)

Вы можете получить элемент управления календаря от http://www.obout.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...