Hi,
I am using telerik dll version 2010.2.929.35.
I have a grid in a page and i am showing tooltip on click of each cell, using "radTooltipManager". The contents of the tooltip are dynamic.
The function OnAjaxUpdate is called multiple times in firefox.
In the previous version of the dll, this was working fine. Please help...
Thanks...
Below is the code.
Master page
Default.aspx
Default.aspx.cs
I am using telerik dll version 2010.2.929.35.
I have a grid in a page and i am showing tooltip on click of each cell, using "radTooltipManager". The contents of the tooltip are dynamic.
The function OnAjaxUpdate is called multiple times in firefox.
In the previous version of the dll, this was working fine. Please help...
Thanks...
Below is the code.
Master page
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="atk" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
id
=
"Head1"
runat
=
"server"
>
<
title
></
title
>
<
asp:ContentPlaceHolder
ID
=
"head"
runat
=
"server"
>
</
asp:ContentPlaceHolder
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
atk:ToolkitScriptManager
ID
=
"ScriptManager1"
EnablePageMethods
=
"true"
EnableScriptLocalization
=
"true"
runat
=
"server"
AsyncPostBackTimeout
=
"36000"
>
</
atk:ToolkitScriptManager
>
<
div
>
<
asp:ContentPlaceHolder
ID
=
"ContentPlaceHolder1"
runat
=
"server"
>
</
asp:ContentPlaceHolder
>
</
div
>
</
form
>
</
body
>
</
html
>
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TooltipwithRadgrid.aspx.cs"
MasterPageFile="~/MasterPage.Master" Inherits="TooltipwithRadgrid" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="atk" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"Head"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
runat
=
"server"
>
<
asp:UpdatePanel
ID
=
"ss"
runat
=
"server"
UpdateMode
=
"Conditional"
>
<
ContentTemplate
>
<
telerik:RadToolTipManager
runat
=
"server"
Width
=
"200px"
Height
=
"100px"
ContentScrolling
=
"Auto"
ID
=
"RadToolTipManager1"
AutoCloseDelay
=
"90000000"
RelativeTo
=
"Element"
Animation
=
"Fade"
HideEvent
=
"LeaveTargetAndToolTip"
ManualClose
=
"false"
Skin
=
"Default"
OnAjaxUpdate
=
"OnAjaxUpdate"
ShowEvent
=
"OnClick"
RenderInPageRoot
=
"true"
AnimationDuration
=
"100"
>
</
telerik:RadToolTipManager
>
<
asp:Panel
ID
=
"pnlData"
runat
=
"server"
>
</
asp:Panel
>
</
ContentTemplate
>
</
asp:UpdatePanel
>
<
asp:Button
ID
=
"btn"
runat
=
"server"
Text
=
"bind grid"
/>
</
asp:Content
>
Default.aspx.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
Telerik.Web.UI;
using
System.Web.UI.HtmlControls;
public
class
DynamicTemplateRadGridHandler : ITemplate
{
GridItemType itemtype;
Telerik.Web.UI.RadToolTipManager radToolTipManager;
string
columnName;
/// <summary>
/// Constructor for dynamic template
/// </summary>
/// <param name="item_type">Itemtype(Header/Dataitem)</param>
/// <param name="dataload_Name">name of the dataload</param>
public
DynamicTemplateRadGridHandler(GridItemType item_type,
string
column_Name, Telerik.Web.UI.RadToolTipManager radToolTip_Manager)
{
columnName = column_Name;
itemtype = item_type;
radToolTipManager = radToolTip_Manager;
}
#region ITemplate Members
/// <summary>
/// creates templates for header and items
/// </summary>
/// <param name="container"></param>
public
void
InstantiateIn(Control Container)
{
switch
(itemtype)
{
case
GridItemType.Header:
Literal header_ltrl =
new
Literal();
header_ltrl.Text =
"<b>"
+ columnName +
"</b>"
;
Container.Controls.Add(header_ltrl);
break
;
case
GridItemType.Item:
case
GridItemType.AlternatingItem:
LinkButton field_lbl =
new
LinkButton();
field_lbl.ID = columnName;
field_lbl.Text = String.Empty;
field_lbl.DataBinding +=
new
EventHandler(OnDataBinding);
Container.Controls.Add(field_lbl);
break
;
}
}
#endregion
/// <summary>
/// used to bind data to dynamic templates created by using InstantiateIn
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void
dataTable_DataBinding(
object
sender, EventArgs e)
{
object
bound_value_obj =
null
;
Control ctrl = (Control)sender;
GridDataItem data_item_container = (GridDataItem)ctrl.NamingContainer;
bound_value_obj = DataBinder.GetPropertyValue(data_item_container.DataItem, columnName);
LinkButton lnk = (LinkButton)sender;
lnk.Text = bound_value_obj.ToString();
radToolTipManager.TargetControls.Add(lnk.ClientID,
"Tool tip Data"
,
true
);
}
private
void
OnDataBinding(
object
sender, EventArgs e)
{
object
bound_value_obj =
null
;
Control ctrl = (Control)sender;
GridDataItem data_item_container = (GridDataItem)ctrl.NamingContainer;
bound_value_obj = DataBinder.GetPropertyValue(data_item_container.DataItem, columnName);
LinkButton lnk = (LinkButton)sender;
lnk.Text = bound_value_obj.ToString();
radToolTipManager.TargetControls.Add(lnk.ClientID,
"Tool tip Data"
,
true
);
}
}
public
partial
class
TooltipwithRadgrid : System.Web.UI.Page
{
public
RadGrid grdHierarchy =
null
;
protected
void
Page_Load(
object
sender, EventArgs e)
{
btn.Click +=
new
EventHandler(btn_Click);
}
protected
void
btn_Click(
object
sender, EventArgs e)
{
creatGrid();
}
protected
void
Page_Init(
object
sender, EventArgs e)
{
pnlData.Controls.Clear();
grdHierarchy =
null
;
}
protected
void
rad_OnItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
{
LinkButton lnk = e.Item.FindControl(
"lnk4"
)
as
LinkButton;
RadToolTipManager1.TargetControls.Add(lnk.ClientID,
"fffff123"
,
true
);
}
}
protected
void
OnAjaxUpdate(
object
sender, ToolTipUpdateEventArgs args)
{
//this.UpdateToolTip(args.Value, args.UpdatePanel);
Label ctrl =
new
Label();
ctrl.Text = args.Value +
" test data."
;
args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl);
RadToolTipManager1.UpdatePanel.Update();
}
private
void
UpdateToolTip(
string
elementID, UpdatePanel panel)
{
Label ctrl =
new
Label();
ctrl.Text = elementID +
" test data."
;
panel.ContentTemplateContainer.Controls.Add(ctrl);
RadToolTipManager1.UpdatePanel.Update();
}
private
void
creatGrid()
{
DataTable dt =
new
DataTable();
for
(
int
i = 0; i < 10; i++)
{
dt.Columns.Add(
"Column"
+i);
}
for
(
int
i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
foreach
(DataColumn clm
in
dt.Columns)
{
dr[clm] =
"Value"
+ i;
}
dt.Rows.Add(dr);
}
grdHierarchy =
new
RadGrid();
grdHierarchy.ID =
"grdHierarchy"
;
grdHierarchy.ID =
"grdHierarchy"
;
grdHierarchy.EnableTheming =
true
;
grdHierarchy.Width = Unit.Pixel(200);
grdHierarchy.AutoGenerateColumns =
false
;
grdHierarchy.EnableLinqExpressions =
false
;
grdHierarchy.MasterTableView.Columns.Clear();
grdHierarchy.AllowPaging =
false
;
grdHierarchy.AllowSorting =
false
;
grdHierarchy.EnableViewState =
true
;
grdHierarchy.MasterTableView.EnableViewState =
true
;
grdHierarchy.ClientSettings.EnableRowHoverStyle =
true
;
grdHierarchy.ClientSettings.EnableAlternatingItems =
true
;
grdHierarchy.ClientSettings.Scrolling.AllowScroll =
true
;
grdHierarchy.ClientSettings.Scrolling.FrozenColumnsCount = 1;
grdHierarchy.ClientSettings.Scrolling.SaveScrollPosition =
true
;
grdHierarchy.ClientSettings.Scrolling.ScrollHeight = Unit.Pixel(100);
grdHierarchy.ClientSettings.Scrolling.UseStaticHeaders =
true
;
foreach
(DataColumn clm
in
dt.Columns)
{
GridTemplateColumn ItemTmpField =
new
GridTemplateColumn();
ItemTmpField.HeaderTemplate =
new
DynamicTemplateRadGridHandler(GridItemType.Header, clm.ColumnName, RadToolTipManager1);
ItemTmpField.ItemTemplate =
new
DynamicTemplateRadGridHandler(GridItemType.Item, clm.ColumnName, RadToolTipManager1);
grdHierarchy.MasterTableView.Columns.Add(ItemTmpField);
}
grdHierarchy.DataSource = dt;
grdHierarchy.DataBind();
pnlData.Controls.Clear();
pnlData.Controls.Add(grdHierarchy);
}
}