Hello,
I have a problem with the RadToolTipManager and ASP.NET Server Controls. The control which is loaded in the tooltip doesn’t update its label after the button click. I tested the same setup with an aspx page and a ascx user control, in this case everything works as expected.
Do you have any idea where I did something wrong? I used this example as a reference http://demos.telerik.com/aspnet-ajax/tooltip/examples/loadondemand/defaultcs.aspx. In the end, I would like to update the control on which the tooltip originated, but because the events in the tooltip itself don’t work, I haven’t tried that yet.
Thanks
Setup:
The Default.aspx file is nested within a master-page with a RadScriptManager, I used the Telerik.Web.UI.dll version 2011.1.519.35
Codes:
Default.aspx
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AjaxTooltipRad._Default" %><%@ Register TagPrefix="tt" Assembly="AjaxTooltipRad" Namespace="AjaxTooltipRad.src" %><asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <h2> Tooltip Test </h2> <p><tt:GalleryControl runat="server" /></p></asp:Content>GalleryControl.cs
using System;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;namespace AjaxTooltipRad.src { public class GalleryControl : Control, INamingContainer { public const string RTTMID = "rttmid"; public const string IMGID = "imgid"; private RadToolTipManager rttm; private Image img; public GalleryControl() : base() { rttm = new RadToolTipManager(); rttm.ID = RTTMID; rttm.Position = ToolTipPosition.BottomCenter; rttm.RelativeTo = ToolTipRelativeDisplay.Element; rttm.Width = new Unit("300px"); rttm.Height = new Unit("200px"); rttm.HideEvent = ToolTipHideEvent.LeaveTargetAndToolTip; rttm.AjaxUpdate += new ToolTipUpdateEventHandler(rttm_AjaxUpdate); rttm.Skin = "Default"; rttm.RenderInPageRoot = true; img = new Image(); img.ID = IMGID; rttm.TargetControls.Add(img.ClientID,false); } private void rttm_AjaxUpdate(object sender, ToolTipUpdateEventArgs e) { UpdateToolTip(e.UpdatePanel); } private void UpdateToolTip( UpdatePanel panel) { ServerControlToolTip sctt = new ServerControlToolTip(); panel.ContentTemplateContainer.Controls.Add(sctt); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.Controls.Add(rttm); this.Controls.Add(img); } }}ServerControlToolTip.cs
using System;using System.Web.UI;using System.Web.UI.WebControls;namespace AjaxTooltipRad.src { public class ServerControlToolTip : Control, INamingContainer { private const string textboxId = "textboxid"; private const string buttonId = "buttonid"; private const string labelId = "labelid"; private TextBox textBox; private Button button; private Label label; public ServerControlToolTip() { textBox = new TextBox(); textBox.ID = textboxId; button = new Button(); button.Text = "click"; button.ID = buttonId; button.Click += new EventHandler(button_Click); label = new Label(); label.ID = labelId; } private void button_Click(object sender, EventArgs e) { label.Text = textBox.Text; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.Controls.Add(textBox); this.Controls.Add(button); this.Controls.Add(label); } }}