1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

ASP.NET Calendar control

Discussão em 'Web Development' iniciada por duffy, 31 de Outubro de 2008. (Respostas: 4; Visualizações: 1444)

  1. duffy

    duffy Power Member

    Boas
    Estou aqui a implementar um calendário personalizado com dados a partir da bd.
    A minha dúvida é com as tooltips, gostava de colocar vários valores no mesmo dia, ou seja, quando vou à bd buscar os dados e para o mesmo dia tenho várias tarefas.
    Basicamente era algo semelhante ao calendário do moodle, que quando passamos o rato por cima dos dias seleccionadas, aparecem as tarefas desse dia.
    Já pesquisei e não encontrei nada nesse sentido, será que alguém por aqui tem algo?
    Estou a trabalhar com c# mas se tiverem algum exemplo em vb.net também não há problema.

    Thanks :)
     
  2. duffy

    duffy Power Member

  3. AliFromCairo

    AliFromCairo Power Member

    Penso que seria interessante se pudesses partilhar a solução encontrada com o resto da comunidade.
     
  4. Symbio

    Symbio Power Member

    A solucao passa por subscrever o evento DayRender. Depois pode-se ter acesso a celula desse dia e assim afectar a tooltip
     
  5. duffy

    duffy Power Member

    Eu sei, quando coloquei a resposta não tinha o código comigo.

    Não é bem como o Symbio diz, a melhor solução passou por substituir o dia ou dias em causa por um link e vamos colocar a tooltip do link, depois o resto está no código, mais qualquer coisa é só perguntarem :)


    Código:
        protected void Page_Load(object sender, EventArgs e)
        {
            TasksCalendar.Attributes.Add("title", String.Empty);  //limpa a tooltip por defeito do calendário
        }
    
        protected void DayRender(Object source, DayRenderEventArgs e)
        {
     
           //Efectuar a ligação à bd e preencher o datatable (dt)
    
            if (dt != null)
            {
                String url = e.SelectUrl;
                e.Cell.Controls.Clear();    //limpar o dia colocado por defeito
                HyperLink link = new HyperLink();     
                link.Text = e.Day.Date.Day.ToString();     //criar o dia como link
                e.Cell.Controls.Add(link);                        //colocar o dia no calendário
                for (int i = 0; i < dt.Rows.Count; i++ ) 
                {
                    if(e.Day.Date == DateTime.Parse(dt.Rows[i]["Date"].ToString()))
                    {
                        e.Cell.CssClass = "selectedDay";
                        if (link.ToolTip != String.Empty)
                        {
                            link.ToolTip += "\n";
                        }
                        link.ToolTip += "Code: " + dt.Rows[i]["ColumnName"].ToString() + " \n " + "Name: " + dt.Rows[i]["ColumnName"].ToString() + " \n " + "Customer: " + dt.Rows[i]["ColumnName"].ToString() + "\n";
                        
                    }
                }
            }
        }
    
     

Partilhar esta Página