2017-03-23 2 views
0

초록색, 주황색 2 색 날짜판에 8 일을 표시하고 연말까지이 작업을 수행하는 방법은 무엇입니까? 데이터베이스에있는 날짜부터 시작합니다. 이미지를 첨부합니다. 나는 벌써 물었다. 그러나 나를 잘 설명하지 않았다. 나는 다음과 같은 코드가 순간 datepicker의 색상을 지정하는 방법은 무엇입니까?

enter image description here

:

if (Tipo == "1") //Tipos de Jornadas 
        { 
         DateTime FechaJornada = Convert.ToDateTime(iRow["Jornada_Ini"]); 
         DateTime FechaJ = FechaJornada.AddDays(8); 
         DateTime Descanso = FechaJ.AddDays(2); 
         DateTime Jornada2 = FechaJ.AddDays(2); 
         DateTime Fecha2 = Jornada2.AddDays(8); 
         DateTime Descanso2 = Fecha2.AddDays(2); 
         DateTime Jornada3 = Fecha2.AddDays(2); 
         DateTime Fecha3 = Jornada3.AddDays(8); 
         DateTime Descanso3 = Fecha3.AddDays(2); 

         if (e.Day.Date >= FechaJornada && e.Day.Date < FechaJ) //Días Laboraes 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkGreen; 
         } 
         if (e.Day.Date >= Jornada2 && e.Day.Date < Fecha2) //Días Laboraes 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkGreen; 
         } 
         if (e.Day.Date >= Jornada3 && e.Day.Date < Fecha3) //Días Laboraes 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkGreen; 
         } 
         if (e.Day.Date >= FechaJ && e.Day.Date < Descanso) //Días Descanso 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkOrange; 
         } 
         if (e.Day.Date >= Fecha2 && e.Day.Date < Descanso2) //Días Descanso 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkOrange; 
         } 
         if (e.Day.Date >= Fecha3 && e.Day.Date < Descanso3) //Días Descanso 
         { 
          e.Cell.BackColor = System.Drawing.Color.DarkOrange; 
         } 
        } 

하지만 난 당신이 여행의 종류에 따라 일정을 작성할 필요가 이후주기에 그것을 할 싶어. 지금은 월말까지 녹색으로 8 일, 주황색으로 2 일간 페인트를 칠하고 지난 달에 머물렀던 색상으로 새 달을 시작하고 싶습니다. 주기와 함께이 작업을 수행 할 수 있습니다. 알 수 있도록 지원할 수 있습니다.

답변

0

이러한 조작을 위해 DayRender 이벤트 처리기를 사용할 수 있습니다. 내 대답은 당신의 문제를 완전히 해결하지는 못하지만 약간의 논리를 추가하여 어떻게 할 수 있는지에 대한 힌트를 줄 수 있습니다. 매월 일이 동일하지 않습니다. 즉 일부는 30 일, 일부는 28/29입니다. 또는 31, 당신이 이것을 성취 할 수있는 방법을 조금 생각해야합니다. 냈다 코드의

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
{ 
int[] arOfDaysInOrange = { 9, 10, 19, 20, 29, 30 }; 
if (arOfDaysInOrange.Contains(Convert.ToInt32(e.Day.DayNumberText))) 
    e.Cell.BackColor = System.Drawing.Color.DarkOrange; 
else 
    e.Cell.BackColor = System.Drawing.Color.DarkGreen; 
} 

출력은 이것이다 : 당신의 대답 @M Adeel 칼리드에 대한

Sample output

+0

감사합니다, 여기에 내가 나머지의 고정 일이 표시되는 것을보고, 내가 원하는 것입니다 그들은 내 데이터베이스에있는 날의 날짜에 따라 찍은 고정되지 않습니다 8 일 동안 아홉째 날에 나는 오렌지에서 두 표시하고 8 채소와 오렌지 2 다시 시작 – Molitaa

관련 문제