Calendar/Tooltip issue

2 posts, 0 answers
  1. Shawn
    Shawn avatar
    11 posts
    Member since:
    Dec 2010

    Posted 10 Aug 2011 Link to this post

    I'm adding a custom tooltip to "Special" events on the RadCalendar.  My code is below.

    cell.Attributes.Add(

     

    "id", "Calendar1_" + i.ToString());

     

    RadToolTipManager1.TargetControls.Add(e.Cell.Attributes[

     

    "id"], i.ToString(), true);

    This works on the current month view.  So I'll hover and tooltip shows.....But when I add a future Event, I'll click on the next month link and it will show..ex. 9/9/2011....but when I hover all I get is a regular tooltip.
             Things I want to do:
                      1.  I want to load all my events info as the Page/Calendar loads.  I do not want to make an Ajax call.
                      2.  Tooltip doesnt seem to work on Weekends either, even on the current month....ex. 08/20/2011.....Any ideas?

    Full Code:

     

     

     

    protected void RadCalendar1_Load(object sender, EventArgs e)

     

    {

     

     

    RadCalendarDay calendarDay1 = new RadCalendarDay();

     

     

     

    // calendarDay1.TemplateID = "EventTemplate";

     

     

     

     

     

    calendarDay1.Date =

     

    new DateTime(2011, 8, 19);

     

    calendarDay1.ItemStyle.BorderColor = System.Drawing.

     

    Color.Green;

     

    calendarDay1.ItemStyle.BackColor = System.Drawing.

     

    Color.Yellow;

     

     

     

     

     

     

    RadCalendar1.SpecialDays.Add(calendarDay1);

     

     

     

     

     

     

     

     

    RadCalendarDay calendarDay2 = new RadCalendarDay();

     

    calendarDay2.Date =

     

    new DateTime(2011, 9, 9);

     

     

     

     

     

     

    calendarDay2.ItemStyle.CssClass =

     

    "rcEvent";

     

     

     

     

     

     

    calendarDay2.ToolTip =

     

    "This is a test2<br/>Hello2";

     

    RadCalendar1.SpecialDays.Add(calendarDay2);

     

     

    RadCalendarDay calendarDay3 = new RadCalendarDay();

     

    calendarDay3.Date =

     

    new DateTime(2011, 8, 30);

     

    calendarDay3.ItemStyle.BorderColor = System.Drawing.

     

    Color.Green;

     

    calendarDay3.ItemStyle.BackColor = System.Drawing.

     

    Color.Yellow;

     

     

     

    // calendarDay3.TemplateID = "EventTemplate";

     

     

     

     

     

    RadCalendar1.SpecialDays.Add(calendarDay3);

     

     

    RadCalendarDay calendarDay4 = new RadCalendarDay();

     

    calendarDay4.Date =

     

    new DateTime(2011, 3, 6);

     

    calendarDay4.ItemStyle.BorderColor = System.Drawing.

     

    Color.Green;

     

    calendarDay4.ItemStyle.BackColor = System.Drawing.

     

    Color.Yellow;

     

     

     

    // calendarDay3.TemplateID = "EventTemplate";

     

     

     

     

     

    RadCalendar1.SpecialDays.Add(calendarDay4);

     

     

    RadCalendarDay calendarDay5 = new RadCalendarDay();

     

    calendarDay5.Date =

     

    new DateTime(2011, 12, 11);

     

    calendarDay5.ItemStyle.BorderColor = System.Drawing.

     

    Color.Green;

     

    calendarDay5.ItemStyle.BackColor = System.Drawing.

     

    Color.Yellow;

     

     

     

    // calendarDay3.TemplateID = "EventTemplate";

     

     

     

     

     

    RadCalendar1.SpecialDays.Add(calendarDay5);

    }

     

     

    protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args)

     

    {

     

     

    Control ctrl = Page.LoadControl("ToolTip.ascx");

     

    args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl);

     

     

    ToolTip details = (ToolTip)ctrl;

     

    details.TestText = args.Value;

    }

     

     

     

    protected void RadCalendar1_DayRender(object sender, Telerik.Web.UI.Calendar.DayRenderEventArgs e)

     

    {

     

     

    //string test = "Hello";

     

     

     

     

     

     

     

    if (IsDayRegisteredForTooltip((e.Day.Date)))

     

    {

     

     

    TableCell cell = e.Cell;

     

     

     

    // cell.CssClass = "Appointment";

     

     

     

     

     

     

     

    string localTime = DateTime.Now.ToLocalTime().ToString();

     

     

     

    //cell.Attributes.Add("id", "Calendar1_" + localTime);

     

     

     

     

     

     

     

    //RadToolTipManager1.TargetControls.Add(e.Cell.Attributes["id"], localTime, true);

     

     

     

     

     

    cell.Attributes.Add(

     

    "id", "Calendar1_" + i.ToString());

     

    RadToolTipManager1.TargetControls.Add(e.Cell.Attributes[

     

    "id"], i.ToString(), true);

     

     

     

    // RadToolTip1.Controls.Add(cell);

     

     

     

     

     

    i++;

    }

     

    }

     

     

    private bool IsDayRegisteredForTooltip(DateTime date)

     

    {

     

     

    if (date.ToShortDateString().Equals("8/30/2011") || date.ToShortDateString().Equals("9/9/2011"))

     

     

     

    // if ( date.ToShortDateString().Equals("9/10/2011"))

     

     

     

     

     

    {

     

     

    return true;

     

    }

     

     

    else

     

     

     

     

     

    {

     

     

    return false;

     

    }

    }

  2. Mira
    Admin
    Mira avatar
    1124 posts

    Posted 16 Aug 2011 Link to this post

    Hello Shawn,

    I have followed your scenario and prepared a sample project for you demonstrating how the desired functionality can be implemented. In it the tooltips for future and weekend dates are shown correct.
    You can find it attached to this post.

    I hope this helps.

    All the best,
    Mira
    the Telerik team

    Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

Back to Top