Problem with tooltip manager

3 posts, 0 answers
  1. Sunil P
    Sunil P avatar
    7 posts
    Member since:
    Nov 2009

    Posted 17 Mar 2010 Link to this post

    I have a radCalender, by clicking on each date cell a popup is getting opened. In Tooltip manager's OnAjaxUpdate event i am binding data to tool tip. Its throwing an exception (other than IE browsers, In IE working fine) as 

    RadToolTipManager response error:
     Exception=Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0


    And telerik dll version is 2010.1.309.35. Please help me..

    Calender.ascx

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Calendar.ascx.cs" Inherits="Transactiv.Commerce.Web.Controls.Common.Calendar" %>

                 
     <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
         <script type="text/javascript">
            function ShowToolTip(sender)
            {
                var tooltipManager = $find("<%=RadToolTipManager1.ClientID %>");

                   //If the user hovers the image before the page has loaded, there is no manager created
                   if (!tooltipManager) return;

                   setTimeout("", 3000);
                  //Find the tooltip for this element if it has been created
                  var tooltip = tooltipManager.getToolTipByElement(sender);
        
                  //Create a tooltip if no tooltip exists for such element
                  if (!tooltip)
                  {                                                  
                      tooltip = tooltipManager.createToolTip(sender);
                      var dateValue = sender.getAttribute("dateInfo");
                      //var neededValue = longValue.substring(longValue.indexOf('_') + 1)
                      tooltip.set_value(dateValue);               
                      tooltip.show();
                  }          
             }

                </script>
     </telerik:RadCodeBlock>
           
            <table>
            <tr>
              <td class="calender_txt">Calendar</td>
            </tr>
            <tr>
              <td class="details_txt">
                  <telerik:RadCalendar ID="radScheduleCalendar" runat="server"  TitleFormat="MMMM yyyy" Skin="Default"
                        OnDayRender="radScheduleCalendar_DayRender" Width="158px" AutoPostBack="true"   >
                  </telerik:RadCalendar>
                  <telerik:RadToolTipManager Width="350px" Height="200px" RelativeTo="Element" ID="RadToolTipManager1" HideEvent="ManualClose" ShowEvent="OnClick"
                    runat="server" OffsetX="5" Position="MiddleRight" OnAjaxUpdate="RadToolTipmanager1_AjaxUpdate" Skin="Telerik" RenderInPageRoot="true" AnimationDuration="200">
                  </telerik:RadToolTipManager>
              </td>
            </tr>
          </table> 
     


    Calender.ascx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;
    using System.Xml.Linq;

    using Transactiv.Commerce.Web.Base;

    namespace Transactiv.Commerce.Web.Controls.Common
    {
        public partial class Calendar : BaseUserControl
        {

            protected void Page_Load(object sender, EventArgs e)
            {

                radScheduleCalendar.CultureInfo = new System.Globalization.CultureInfo("en-us");
                radScheduleCalendar.ShowRowHeaders = false;
                radScheduleCalendar.UseColumnHeadersAsSelectors = false;
                radScheduleCalendar.UseRowHeadersAsSelectors = false;
                radScheduleCalendar.EnableMultiSelect = false;
                radScheduleCalendar.SelectedDate = DateTime.Now;
                radScheduleCalendar.EnableEmbeddedSkins = false;
            }
            protected void RadToolTipmanager1_AjaxUpdate(object sender, ToolTipUpdateEventArgs e)
            {
                //e.UpdatePanel.ContentTemplateContainer.Controls.Add(new LiteralControl("<html><body>"));
                //e.UpdatePanel.ContentTemplateContainer.Controls.Add(new LiteralControl(e.Value));
                //e.UpdatePanel.ContentTemplateContainer.Controls.Add(new LiteralControl("</body></html>"));
                SchedulePanel details = (SchedulePanel)this.LoadControl("SchedulePanel.ascx");
                details.Date = DateTime.Parse(e.Value);
                e.UpdatePanel.ContentTemplateContainer.Controls.Add(details);
            }
            protected void radScheduleCalendar_DayRender(object sender, Telerik.Web.UI.Calendar.DayRenderEventArgs e)
            {
                TableCell cell = e.Cell;
                cell.Attributes.Add("dateInfo", e.Day.Date.ToString());
                cell.Attributes.Add("onclick", "ShowToolTip(this);");           
                cell.CssClass = "Appointment";
                e.Cell.Attributes["Title"] = "Click here for more information";

                RadToolTipManager1.TargetControls.Add(cell.ClientID, true);
            }

            private int IsDayRegisteredForTooltip(DateTime date, DateTime eventDate)
            {
                int result;
                if (DateTime.Compare(date, eventDate) == 0)
                    result = 1;
                else
                    result = -1;
                return result;
            }
        }
    }

  2. suthin sadanandan
    suthin sadanandan avatar
    1 posts
    Member since:
    Aug 2009

    Posted 19 Mar 2010 Link to this post

    Please change the "onclick" event to  "onmousedown" event

    cell.Attributes.Add("onmousedown", "ShowToolTip(this);");  (Working Code)
    //cell.Attributes.Add("onclick", "ShowToolTip(this);"); (Previous code)

  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Svetlina Anati
    Admin
    Svetlina Anati avatar
    2795 posts

    Posted 22 Mar 2010 Link to this post

    Hello Sunil,

    I examined your code and what I noticed is that you have AutoPostBack = true for the calendar and at the same time you have set OnClick to be the ShowEvent for the RadToolTip. Please, note that this configuration is invalid because what actually happens is that since the tooltip should show onclick it cancels the postback because otherwise there is a logical problem. If you perform a postback onclick this means that the tooltip will not show because the page will be submitted. This being said what I can suggest is to cancel the postback on click and if a postback is needed on some condition after the tooltip is shown to invoke it through the client by using the built-in __doPostBack function.


    All the best,
    Svetlina
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Back to Top