I'm stumped. I have a column in a grid with an image. In one working page, on mouseover of the image we use the webservicesettings to call a service and dynamically value the mouseover tooltip with a larger thumbnail of the image. It works great and is based on the image gallery sample that auto-sizes and such.
I have another page that also has an image column and calls a different service to do the same effect. However when I mouse over the image NOTHING HAPPENS. I set an alert in the OnClientBeforeShow function and it never seems to be called. The only difference I can think of is that this page uses the code that does an OnPageLoad ajax request to show a loading graphic while the page loads. Is this perhaps causing issues with the radtooltips?
The only differences I can think of are 1) the initial ajax on page load addition, and 2) the additional asp panel wrapped around things that is not in the other screen which works fine.
Here is the master page aspx, the page aspx, and the page code-behind.
Thx!
Master page:
Now the aspx page:
...and the code-behind:
I have another page that also has an image column and calls a different service to do the same effect. However when I mouse over the image NOTHING HAPPENS. I set an alert in the OnClientBeforeShow function and it never seems to be called. The only difference I can think of is that this page uses the code that does an OnPageLoad ajax request to show a loading graphic while the page loads. Is this perhaps causing issues with the radtooltips?
The only differences I can think of are 1) the initial ajax on page load addition, and 2) the additional asp panel wrapped around things that is not in the other screen which works fine.
Here is the master page aspx, the page aspx, and the page code-behind.
Thx!
Master page:
<%@ Master Language="C#" AutoEventWireup="true" Codebehind="WebAppMaster.master.cs" |
Inherits="Portal.Shell.MasterPages.WebAppMaster" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" > |
<head id="Head" runat="server"> |
<title></title> |
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> |
<meta name="description" content="" /> |
<meta name="keywords" content="" /> |
<meta name="author" content="" /> |
</head> |
<body> |
<div id="wrap"> |
<telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" DecoratedControls="All" /> |
<form id="mainForm" runat="server"> |
<asp:ScriptManager ID="DefaultMasterScriptManager" runat="server"></asp:ScriptManager> |
<asp:ContentPlaceHolder ID="DefaultContent" runat="server" /> |
<br /><br /> |
</form> |
</div> |
</body> |
</html> |
Now the aspx page:
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Domains.aspx.cs" Inherits="Portal.WebApp.Views.Domains" |
Title="Domains" MasterPageFile="~/Shared/WebAppMaster.master" %> |
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> |
<asp:Content ID="content" ContentPlaceHolderID="DefaultContent" Runat="Server"> |
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> |
<script type="text/javascript"> |
function pageLoad(sender, eventArgs) { |
if (!eventArgs.get_isPartialLoad()) { |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("InitialPageLoad"); |
} |
} |
</script> |
</telerik:RadCodeBlock> |
<script type="text/javascript"> |
var currentTooltip = null; |
function OnClientBeforeShow(sender, args) { |
//Hide the currently visible tooltip |
if (currentTooltip) { |
if (currentTooltip != sender) currentTooltip.hide(); |
return; |
} |
currentTooltip = sender; |
args.set_cancel(true); |
} |
function centerTooltip(img) { |
if (currentTooltip) { |
currentTooltip.set_contentElement(img); |
//use the method updateLocation because it does not call WebService's method which loads the content |
currentTooltip.updateLocation(); |
currentTooltip = null; |
} |
} |
</script> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" |
OnAjaxRequest="RadAjaxManager1_AjaxRequest"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="Panel1" |
LoadingPanelID="RadAjaxLoadingPanel1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" |
Width="75px"> |
<img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading3.gif") %>' |
style="border: 0px;" /> |
</telerik:RadAjaxLoadingPanel> |
<telerik:RadToolTipManager ID="RadToolTipManager1" runat="server" Position="center" |
RelativeTo="BrowserWindow" OnClientBeforeShow="OnClientBeforeShow"> |
<WebServiceSettings Method="GetWebSiteThumb" Path="~/Services/WSSiteThumb.asmx" /> |
</telerik:RadToolTipManager> |
<h2>Domains</h2> |
<asp:Panel ID="Panel1" runat="server"> |
<div class="breadcrumb">Back to: <a href="Default.aspx">Jobs</a></div> |
<telerik:RadGrid ID="RadGrid1" runat="server" |
AllowSorting="True" GridLines="None" AutoGenerateColumns="false" OnItemCommand="RadGrid1_OnItemCommand" OnItemDataBound="RadGrid1_ItemDataBound"> |
<ClientSettings EnableRowHoverStyle="true"> |
<Selecting AllowRowSelect="false" /> |
</ClientSettings> |
<MasterTableView CellSpacing="-1"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridTemplateColumn UniqueName="thumb" ItemStyle-Width="20px"> |
<ItemTemplate> |
<asp:Image runat="server" ID="thumb" ImageUrl="" Width="16" Height="16" /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn UniqueName="domain" DataField="domain" HeaderText="Domain"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="score" DataField="score" HeaderText="Score"> |
</telerik:GridBoundColumn> |
<telerik:GridButtonColumn CommandName="Select" Text="View Pages" |
UniqueName="select" HeaderText="Action"> |
</telerik:GridButtonColumn> |
</Columns> |
</MasterTableView> |
</telerik:RadGrid> |
</asp:Panel> |
</asp:Content> |
...and the code-behind:
using System; |
using System.Data; |
using System.Configuration; |
using System.Collections; |
using System.Web; |
using System.Web.Security; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using System.Web.UI.WebControls.WebParts; |
using System.Web.UI.HtmlControls; |
using Portal.WebApp.Views; |
using Microsoft.Practices.ObjectBuilder; |
using System.Collections.Generic; |
using Portal.BusinessObjects.Interface; |
using Telerik.Web.UI; |
namespace Portal.WebApp.Views |
{ |
public partial class Domains : Microsoft.Practices.CompositeWeb.Web.UI.Page, IDomainsView |
{ |
private DomainsPresenter _presenter; |
protected void Page_Load(object sender, EventArgs e) |
{ |
if (!this.IsPostBack) |
{ |
//this._presenter.OnViewInitialized(); |
} |
this._presenter.OnViewLoaded(); |
} |
protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e) |
{ |
if (e.Argument == "InitialPageLoad") |
{ |
this._presenter.OnViewInitialized(); |
} |
} |
[CreateNew] |
public DomainsPresenter Presenter |
{ |
get |
{ |
return this._presenter; |
} |
set |
{ |
if (value == null) |
throw new ArgumentNullException("value"); |
this._presenter = value; |
thisthis._presenter.View = this; |
} |
} |
#region IDefaultView Members |
public void SetDataSource(List<ISentimentDomain> aDomains) |
{ |
RadGrid1.DataSource = aDomains; |
RadGrid1.DataBind(); |
} |
protected void RadGrid1_OnItemCommand(object source, GridCommandEventArgs e) |
{ |
if ("Select" == e.CommandName) |
{ |
GridDataItem row = e.Item as GridDataItem; |
TableCell did = row["domain"]; |
this._presenter.OnDomainSelected(did.Text); |
} |
} |
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
{ |
if (e.Item is GridDataItem) |
{ |
GridDataItem row = e.Item as GridDataItem; |
TableCell dom = row["domain"]; |
Image img = row["thumb"].FindControl("thumb") as Image; |
img.ImageUrl = "~/img/delete.gif"; |
this.RadToolTipManager1.TargetControls.Add(img.ClientID, dom.Text, true); |
} |
} |
public void SetError(string sError) |
{ |
Session["errormsg"] = sError; |
Response.Redirect("~/Errors/WebAppError.aspx", true); |
} |
#endregion |
} |
} |