At present, when content arrives from one of the load-on-demand mechanisms in RadToolTipManager (AJAX request, web service, WCF web service), it is expected that it has static dimensions that match those set in the Width and Height property of the control. Having an autosizing feature similar to RadWindow's should let it update its size (e.g., height by provided width) and position according to the new content when it arrives. Samples are attached that showscase examples of resizing the tooltip once content arrives so you can use as base and implement similar resizing logic by calculating the dimensions of the content that came back.
No tooltip should be shown if there is no data for the tooltip: - RadToolTipManager: AutoTooltipify=true; IgnoreAltAttribute=true; no title attribute set for the elements on the page: no tooltips should be generated, but empty ones are - RadToolTip: IgnoreAltAttribute=true; no Text or content are set; no title attribute set on the target: no tooltip should be shown, but an empty one is Leave your comments below on the behavior you would expect from this property. Possible workarounds are attached to the thread.
When creating tooltips dynamically it is possible that on a given condition some of them should not be shown anymore. A reference to them can be obtained through the manager (getToolTipByElement(HTMLelement) method), but they cannot be removed. Calling dispose() removes the handlers, but the JavaScript object remanis, so re-adding a tooltip for the same element is not easily possible. There should be a method like removeToolTipByElement(HTMLelement) or removeToolTip(RadToolTipInstance) that will also remove the JavaScript object, popup element, etc.
When we have templates the generation of the clientIDs is dynamical. If some controls are removed and added back to the controls collection their clientIDs are changed. We can give a reference to the control in the Add method and onprerender the ToolTipManager could find their ClientIDs. E.g. the following demo: http://demos.telerik.com/aspnet-ajax/orgchart/examples/applicationscenarios/integrationwithradtooltip/defaultcs.aspx. is not working when we have DrillDown.
The ContentScrolling property does not take effect under IE10. The end result is that the control behaves as if the property has its Default value (i.e. the browser will handle the overflow of the elements, which means large content will stretch the tooltips).
When the following properties are set - HideEvent="LeaveToolTip" and RenderMode="LightWeight" and the mouse cursor is moved over the ToolTip in a slower motion, the tooltip itself is hidden.
Problem: With the latest version of Google Chrome 61 the tooltip is not positioning correctly when the page is scrolled down. Details: The tooltip positioning problem is due to the following breaking change in Chrome 61 (see release notes at https://blog.chromium.org/2017/08/chrome-61-beta-javascript-modules.html): To align with the spec and preserve browser consistency, the scrollingElement is now the documentElement in standards mode. Chrome 61 has changed the behavior of document.scrollingElement to return document.documentElement instead of document.body to match the CSSOM View specification and this broke the positioning of the tooltip. Solution: Use the _getPosRelativeToMouse override to solve the problem: <telerik:RadGrid ID="RadGrid" runat="server"></telerik:RadGrid> <telerik:RadToolTipManager ID="RadToolTipManager1" AutoTooltipify="true" runat="server"> </telerik:RadToolTipManager> Telerik.Web.UI.RadToolTip.prototype._getPosRelativeToMouse = function(targetBounds) { var elemX = targetBounds.x; var elemY = targetBounds.y; //Get last recorded mouse position var pos = this._getMousePosition(); var mouseX = pos.clientX; var mouseY = pos.clientY; //Take into consideration the offsetScroll! var standard = $telerik.standardsMode; //$telerik.standardsMode does not do a good job! Extra check is needed for FF!! //And yet another check needed for Safari! It should always be set to false in order to get the calculations right if (!$telerik.isIE && document.compatMode != "CSS1Compat") standard = false; else if (($telerik.isSafari && !(Telerik.Web.Browser.chrome && Telerik.Web.Browser.version >= 61)) || (Telerik.Web.Browser.edge && Telerik.Web.Browser.version >= 15)) standard = false; if (standard) { elemX -= $telerik.getCorrectScrollLeft(document.documentElement); elemY -= document.documentElement.scrollTop; } else //NEW: Add support for quircksmode { elemX -= $telerik.getCorrectScrollLeft(document.body); elemY -= document.body.scrollTop; } //Calculate the position of the mouse, relative to the targetcontrol var deltaX = mouseX - elemX; var deltaY = mouseY - elemY; return { x: deltaX, y: deltaY }; }
Many controls have items tooltip (RadComboBox, RadListBox, etc...) and every time is a pain to bind data in. You could implement support to "DataToolTipField" .....
When Tooltip ContentScrolling property is set to Auto the the tooltip dimensions are not computed properly and the layout looks inconsistent (i.e. usually the left and/or right borders are missing). Possible workarounds are: 1) using content that will fit in the tooltip and leaving the ContentScrolling property to its default value OR 2) using some JavaScript to modify the dimensions: function OnClientResponseEnd() { var activeTooltip = Telerik.Web.UI.RadToolTip.getCurrent(); if (activeTooltip) { var contentElement = activeTooltip.get_contentElement(); if (contentElement) { contentElement.style.width = parseInt(contentElement.style.width) - 15 + "px"; contentElement.style.height = parseInt(contentElement.style.height) - 15 + "px"; contentElement.style.overflow = "auto"; } } } where this is attached to the OnClientResponseEnd event of the RadToolTipManager.
The main wrapper of the tooltip is animated and the callout is positioned and shown after that. This makes it "pop" after the animation finishes. Disabling the shadow (EnableShadow=false) mitigates the effect somewhat. The callout can be positioned initially (if ShowCallout is not set to false) where it should be according to the Position property of the RadToolTip and its location can be updated at the end of the entire showing process again (as it is now).
See http://www.telerik.com/community/forums/aspnet-ajax/tooltip/changing-targetcontrol-on-the-client.aspx It should be expected that this timeout around the public API is not needed and the problem is taken care of internally by the control.
A workaround is to force the tooltip to update its position when the content arrives (i.e., in the OnClientResponseEnd event: http://www.telerik.com/help/aspnet-ajax/tooltipmanager-client-side-on-response-end.html ) function OnClientResponseEnd(sender, args) { var activeTooltip = Telerik.Web.UI.RadToolTip.getCurrent(); if (activeTooltip) { activeTooltip.updateLocation(); } }
There should be a method like GetRadWindowManager for RadToolTipManager called GetRadToolTipManager. This could be under the static $telerik.static library or as a global function that can be directly called without any prefixes. The goal is to find the RadToolTipManager in an easy and transparent manner in any content page, otherwise one needs to get the id from master page and then use $find, which is not an easy and transparent way of getting the manager object.
When the page is in RTL mode and the manual close button of the RadToolTip is hovered it changes its position slightly.
Telerik version - 2011.1.614.35 RadToolTip issue seen on Chrome (version 28.0.1500.95) and Safari (version 5.1.7) The RadToolTip doesn’t align properly with the control that was hidden initially. i. There is a label control inside the RadGrid header template, that has RadToolTip attached. ii. On page load, the column is hidden. iii. The column is made visible when a particular button is clicked (client side event). iv. When the cursor is hovered over this column for the first time, the tool tip is seen at a distant place away from the label. v. However, when hovered again, it is seen properly aligned with the label control
The error that is thrown on page load is that two components with the same ID cannot be added to the page. Possible workarounds: 1) set EnableAriaSupport to false 2) use client-side code to show tooltips, as shown in this demo: http://demos.telerik.com/aspnet-ajax/tooltip/examples/radtooltipmanagerclientapi/defaultcs.aspx .