Диапазон дат отображения календаря событий ASP.net - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть календарь, который выделяет выбранную дату из базы данных. В настоящее время он выделяет только дату начала ... Я бы хотел выделить диапазон дат (дата начала - дата отправки)

Мой текущий код выглядит следующим образом:

Function GetCurrentMonthData(ByVal startdate As DateTime, _
                              ByVal enddate As DateTime) As DataSet
    Dim dsMonth As New DataSet
    Dim cs1 As ConnectionStringSettings
    cs1 = ConfigurationManager.ConnectionStrings("ConnectionString1")
    Dim connString As String = cs1.ConnectionString
    Dim dbConnection As New SqlConnection(connString)
    Dim query As String
    query = "SELECT holidaydate FROM HolidayRequests WHERE HolidayDate >= @startDate AND HolidayDate < @endDate"

    Dim dbCommand As New SqlCommand(query, dbConnection)
    dbCommand.Parameters.Add(New SqlParameter("@startdate", startdate))
    dbCommand.Parameters.Add(New SqlParameter("@enddate", enddate))

    Dim sqlDataAdapter As New SqlDataAdapter(dbCommand)
    Try
        sqlDataAdapter.Fill(dsMonth)
    Catch
    End Try
    Return dsMonth
End Function

Protected Sub Calendar1_DayRender(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) _
        Handles Calendar1.DayRender
    Dim nextDate As DateTime
    If Not dsHolidays Is Nothing Then
        For Each dr As DataRow In dsHolidays.Tables(0).Rows
            nextDate = CType(dr("holidaydate"), DateTime)
            If nextDate = e.Day.Date Then
                e.Cell.BackColor = System.Drawing.Color.Pink
            End If
        Next
    End If
End Sub

Я думаю, что используемый запрос и оператор не извлекают правильную информацию, но не совсем уверены, где и как ее исправить ...

1 Ответ

0 голосов
/ 23 февраля 2012

DayRender Sub необходимо было изменить следующим образом:

Protected Sub Calendar1_DayRender(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) _
        Handles Calendar1.DayRender
    Dim nextDate As DateTime
    Dim StartDate As DateTime
    Dim Enddate As DateTime
    Dim username As String

    If Not dsHolidays Is Nothing Then
        For Each dr As DataRow In dsHolidays.Tables(0).Rows
            StartDate = CType(dr("StartDate"), DateTime)
            Enddate = CType(dr("EndDate"), DateTime)
            nextDate = CType(dr("startdate"), DateTime)
            username = CType(dr("username"), String)

            If e.Day.Date >= StartDate And e.Day.Date <= Enddate Then


                e.Cell.BackColor = System.Drawing.Color.Pink
            End If
        Next
    End If
End Sub
...