2012-02-15 4 views
0

데이터베이스에서 선택한 날짜를 강조 표시하는 달력이 있습니다.ASP.net 이벤트 일정 표시 날짜 범위

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 

나는 쿼리를 생각하고 여기서 다음과 같이

내 현재 코드 - 그것은 현재 내가 날짜의 범위 (전송 날짜 시작 날짜를) 강조를하고 싶습니다 ... 시작 날짜 만 강조 다음과 같이 사용하는 문장은 올바른 정보를 당기는 것이 아니라, 완전히 확실하지 않은 경우 또는 해결 방법 ...

+0

날짜를 당신 DATE 유형의 데이터베이스에서 검색 하시겠습니까? (db 필드 유형은 Date 또는 DateTime입니까?) –

+0

날짜로 설정되었습니다! – user1055487

+0

좋습니다. 'DayRender' 이벤트가 처리되기 전에'dsHolidays'가 설정되어 있는지 확인할 수 있습니까? –

답변

0

필요한 DayRender 하위는 변경할 수 :

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