none
Personalizando data especifica em ASP.net RRS feed

  • Pergunta

  • Olá pessoal, tudo bem?

    Eu já tentei várias formas, e não tive sucesso em personalizar o background de uma data especifica em um componente Calendar em ASP.net.

    Por exemplo, eu gostaria que, em meu calendário, uma data X aparecesse com o background na cor vermelha, ou qualquer outra. Não encontro de forma alguma essa propriedade.


    Alguém sabe como resolver?


    Grato!
    sexta-feira, 17 de abril de 2015 03:32

Todas as Respostas

  • Olá

    Estou postando abaixo um codigo utilizado por mim, a muito tempo atrás, para montar o calendário, de definir cores diversas, para feriado por exemplo.

    		<table style="height: 520px">
                        <tr>
                            <td class="titulo2">
                                Calendário<br />
                                <asp:Calendar ID="myCalendarHome" runat="server" Width="200px" BorderColor="#999999"
                                    Font-Size="8pt" Font-Names="Verdana" CellPadding="4" Height="200px" BackColor="#DAEBEF"
                                    ForeColor="black" ShowNextPrevMonth="true" NextPrevFormat="CustomText" NextPrevStyle-CssClass="testeNextPrev"
                                    Visible="true" BorderStyle="Solid" DayNameFormat="FirstLetter" OnDayRender="myCalendarHome_DayRender">
                                    <TodayDayStyle ForeColor="Black" BackColor="#DAEBEF"></TodayDayStyle>
                                    <SelectorStyle BackColor="#CCCCCC"></SelectorStyle>
                                    <NextPrevStyle VerticalAlign="Bottom"></NextPrevStyle>
                                    <DayHeaderStyle Font-Size="7pt" Font-Bold="True" BackColor="#DAEBEF"></DayHeaderStyle>
                                    <SelectedDayStyle Font-Bold="True" ForeColor="White" BackColor="#666666"></SelectedDayStyle>
                                    <TitleStyle Font-Bold="True" BorderColor="Black" BackColor="#DAEBEF"></TitleStyle>
                                    <WeekendDayStyle BackColor="#DAEBEF"></WeekendDayStyle>
                                    <OtherMonthDayStyle ForeColor="Gray"></OtherMonthDayStyle>
                                </asp:Calendar>
                            </td>
                        </tr>
    		 </table>
    
    	protected void myCalendarHome_DayRender(object sender, DayRenderEventArgs e)
            {
                try
                {
                    CalendarDay day = (CalendarDay)e.Day;
                    TableCell cell = (TableCell)e.Cell;
                    if (!day.IsOtherMonth)
                    {
                        if (Session["loginUsuario"] != null)
                        {
                            if (short.Parse(Session["tipoUsuario"].ToString()) != 4)
                            {
                                if (ViewState["_DtDadosFeriado"] == null)
                                    this.CarregaFeriados();
                                System.Data.DataRow[] row = _dtFeriado.Select("DATFERIADO = '" + day.Date + "'");
                                if ((row != null) && row.Length > 0)
                                    cell.Attributes.CssStyle.Add("background-color", "#A1CCDD");
                            }
                            else
                            {
                                if (ViewState["_DtDadosCalendario"] == null)
                                    this.CarregaDadosCargaDistribuidores(day.Date.Month, day.Date.Year);
                                else
                                {
                                    // Procura a data do mes no viewstate e se não existir, recarrega o mes processado
                                    System.Data.DataRow[] row1 = _dtCalendario.Select("DATA = '" + day.Date + "'");
                                    if (((row1 == null) || row1.Length == 0) && day.Date <= DateTime.Now)
                                        this.CarregaDados(day.Date.Month, day.Date.Year);
                                }
                                System.Data.DataRow[] row = _dtCalendario.Select("DATA = '" + day.Date + "'");
                                if ((row != null) && row.Length > 0)
                                    cell.Attributes.CssStyle.Add("background-color", row[0]["COR_DIA"].ToString());
                            }
                        }
                    }
                    /** verm: #ED1C24     verd: #22B14C    amar: #00F2FF    bran: #FFFFFF  */
                }
                catch (Exception ex)
                {
                    ...
                }
            }

    att.

    • Sugerido como Resposta Marcos SJ quinta-feira, 6 de agosto de 2015 14:04
    sexta-feira, 17 de abril de 2015 11:27