Unplanned
Last Updated: 03 Nov 2020 10:19 by ADMIN
The Classic RenderMode hides all iframes on the page when the user starts moving or resizing the RadWindow.

This prevents them from consuming the mouse events and thus ensures proper behavior, but hides content from the user which is unexpected. You can find attached below an illustration of the issue.

Due to numerous requests about changing this, the Lightweight mode does not hide the iframes. Thus in some cases, if the browser had not redrawn the RadWindow fast enough, the mouse events may get captured by another iframe.

Cast your vote whether you want the Lightweight mode to do this as well.

You can change this by using the following script (the second instance has the necessary handlers attached, in a real app you can do that via the RadWindowManager, or via an ASP Theme)

		<telerik:RadWindow runat="server" ID="rw1" VisibleOnPageLoad="true" NavigateUrl="Default2.aspx" RenderMode="Lightweight"></telerik:RadWindow>
		<telerik:RadWindow runat="server" ID="rw2" VisibleOnPageLoad="true" NavigateUrl="Default3.aspx" RenderMode="Lightweight"
			OnClientDragStart="hideFrames" OnClientResizeStart="hideFrames" OnClientDragEnd="showFrames" OnClientResizeEnd="showFrames">
		</telerik:RadWindow>
		<script>
			function hideFrames(sender, args) {
				setIframesVisible(false, sender);
			}
			function showFrames(sender, args) {
				setIframesVisible(true, sender);
			}
			function setIframesVisible(bVisible, wnd) {
				var iframes = document.getElementsByTagName("iframe");
				var iframeToSkip = wnd.get_contentFrame();
				for (var i = 0, length = iframes.length; i < length; i++) {
					var frame = iframes[i];
					if (iframeToSkip && (iframeToSkip === frame || iframeToSkip == frame))//compare through == and === because of FF 3.5 and 3.6
						iframeToSkip = null;
					else {
						frame.style.visibility = bVisible ? "" : "hidden";

						//For some extremely strange reason in IE the iframe does not get hidden properly and continues to consume mouse events
						if ($telerik.isIE)
							try {
								frame.contentWindow.document.body.style.visibility = bVisible ? "" : "hidden";
							} catch (ex) {
							}
					}
				}
			}
		</script>
Unplanned
Last Updated: 20 Apr 2017 13:22 by Tom
Scenario description and workaround follow. Note the comments in the workaround and test before using, because it introduces some other unwanted behaviors, mostly related to the bottom/right edge of the zone.
       
WORKAROUND 1:

     <div id="zone" style="width: 600px; height: 500px; background: yellow;"></div>
            <telerik:RadWindow runat="server" ID="rw1" RenderMode="Lightweight" VisibleOnPageLoad="true" Left="0" Top="0" RestrictionZoneID="zone"></telerik:RadWindow>
            <script>
                Telerik.Web.UI.Window.LightweightView.prototype._resizingHandler = function(resizable, args){
                    $telerik.cancelRawEvent(args.get_domEvent());

                    var edges = this.restrictBounds,
                        bounds = this._getResizeBounds(args),
                        borders = this.resizeHelper.borders,
                        fullBounds = {
                            x: bounds.x - borders.left,//originally, subtract
                            y: bounds.y - borders.top,//originally, subtract
                            width: bounds.width + borders.horizontal,
                            height: bounds.height + borders.vertical};
                    //debugger
                    //console.log(fullBounds);
                    //changing the direction in which borders are counted above (+ or -) changes the behavior and the potential issues
                    //if you subtract from the position, resizing will not be available next to the top/left border of the restriction zone
                    //if you add to the position, resizing will be available but the user can resize in the direction of the zone bounds and thus, out of the bounds of the zone, so dragging may become unavailable
                    //also, this will make resizing worse when the window touches the right or bottom of the zone
                    var inContainer = this.window._checkRestrictionZoneBounds(edges, fullBounds);
                    
                    bounds.width = Math.max(resizable.options.constraints.minWidth, bounds.width);
                    bounds.height = Math.max(resizable.options.constraints.minHeight, bounds.height);

                    args.set_cancel(true);
                    if(inContainer && this.touchCount++ > 0)
                    {
                        var style = this.ui.container.style;
                        style.left = bounds.x + "px";
                        style.top = bounds.y + "px";
                        this._setWidth(bounds.width);
                        this._setHeight(bounds.height);

                        this._currentResizeBounds = bounds;
                    }
                }
            </script>

WORKAROUND 2:
Add this to the resizeEnd and dragEnd events of the RadWindow to try and have it never touch the sides of the restriction zone at all.

				function keepThisWindowInBounds(sender) {
					if (!sender.isMinimized() && !sender.isMaximized()) {
						var position = sender.getWindowBounds();
						var rzRect = document.getElementById(sender._restrictionZoneID).getBoundingClientRect();
						// note rzRect height and width are both 1px bigger than the rzElement clientWidth and clientHeight
						// check width and height
						if (position.width > rzRect.width - 3) {
							position.width = rzRect.width - 3;
							sender.set_width(position.width);
						}
						if (position.height > rzRect.height - 3) {
							position.height = rzRect.height - 3;
							sender.set_height(position.height);
						}
						var needToMove = false;
						if (position.x < 1) {
							needToMove = true;
							position.x = 1;
						} else if (position.x > rzRect.width - position.width - 2) {
							needToMove = true;
							position.x = rzRect.width - position.width - 2;
						}
						if (position.y < 1) {
							needToMove = true;
							position.y = 1;
						} else if (position.y > rzRect.height - position.height - 2) {
							needToMove = true;
							position.y = rzRect.height - position.height - 2;
						}
						if (needToMove)
							sender.moveTo(position.x, position.y);
					}
				}
Completed
Last Updated: 21 Apr 2017 14:10 by ADMIN
This is caused by <button> elements without a type attribute. Workarounds are

- add a JS function like this

Sys.Application.add_load(function () {
    // Add the "type=button" attribute to the RadWindow buttons so they don't try to submit the form.
    $("div.rwDialogButtons button").attr("type", "button");
});

 - OR, override the templates and add the attribute:

			<asp:TextBox ID="Textbox1" runat="server" />
			<telerik:RadWindowManager ID="rwm1" runat="server" RenderMode="Lightweight">
				<AlertTemplate>
					<div class="rwDialog rwAlertDialog">
						<div class="rwDialogContent">
							<div class="rwDialogMessage">{1}</div>
						</div>
						<div class="rwDialogButtons">
							<button type="button" class="rwOkBtn" onclick="$find('{0}').close(true); return false;">##LOC[OK]##</button>
						</div>
					</div>
				</AlertTemplate>
				<PromptTemplate>
					<div class="rwDialog rwPromptDialog">
						<div class="rwDialogContent">
							<div class="rwDialogMessage">{1}</div>
							<div class="rwPromptInputContainer">
								<script type="text/javascript">
									function RadWindowprompt_detectenter(id, ev, input) {
										if (!ev) ev = window.event;
										if (ev.keyCode == 13) {
											var but = input.parentNode.parentNode.parentNode.getElementsByTagName("button")[0];
											if (but) {
												if (but.click) {
													but.click();
												}
												else if (but.onclick) {
													but.focus();
													var click = but.onclick;
													but.onclick = null;
													if (click) click.call(but);
												}
											}
											return false;
										}
										else return true;
									}
								</script>
								<input title="Enter Value" onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" type="text" class="rwPromptInput radPreventDecorate" value="{2}" />
							</div>
						</div>
						<div class="rwDialogButtons">
							<button type="button" class="rwOkBtn" onclick="$find('{0}').close(this.parentNode.parentNode.getElementsByTagName('input')[0].value); return false;">##LOC[OK]##</button>
							<button type="button" class="rwCancelBtn" onclick="$find('{0}').close(null); return false;">##LOC[Cancel]##</button>
						</div>
					</div>
				</PromptTemplate>
				<ConfirmTemplate>
					<div class="rwDialog rwConfirmDialog">
						<div class="rwDialogContent">
							<div class="rwDialogMessage">{1}</div>
						</div>
						<div class="rwDialogButtons">
							<button type="button" class="rwOkBtn" onclick="$find('{0}').close(true); return false;">##LOC[OK]##</button>
							<button type="button" class="rwCancelBtn" onclick="$find('{0}').close(false); return false;">##LOC[Cancel]##</button>
						</div>
					</div>
				</ConfirmTemplate>
			</telerik:RadWindowManager>
Completed
Last Updated: 10 May 2017 22:03 by Vasssek
To remove the built-in icon for the Lightweight mode, add the following CSS rules to your page:

			div.rwDialog.rwAlertDialog:before
			{
				content: "";
			}

			div.rwDialog.rwConfirmDialog:before
			{
				content: "";
			}
Completed
Last Updated: 13 Mar 2018 11:45 by Ivan
FF 52 and Chrome58 seem to have started reading some CSS from 2010 differently. 

This affects controls such as RadMenu, RadTreeView, RadPanelBar, RadEditor, RadListBox, RadTabStrip that are in the ContentTemplate of a RadWindow. The issue can manifest as bad element alignment or extra padding.

Internal fix will be available as of R2 2017.

There are two workarounds:

- use the Lightweight Render Mode (helps in some cases)

- add a CSS override similar to the following

			/* FireFox 52+ and Chrome 58+  */
			html:first-child .RadWindowFixed ul {
				float: none !important;
			}

<telerik:RadWindow ID="RadWindow2" runat="server" Title="Rad Window with RadTreeView - Fixed" Width="400px" MinWidth="230px" MaxWidth="600px" CssClass="RadWindowFixed"  
							   Height="610px" VisibleOnPageLoad="true" Behaviors="Minimize, Move, Maximize, Resize" VisibleStatusbar="false" KeepInScreenBounds="true" Left="406">
Completed
Last Updated: 06 Mar 2017 14:34 by ADMIN
Error message: Unable to get property '_handlesCollection' of undefined or null reference
when RenderMode=Lightweight

Workarounds:
- enable the default behaviors to enable the Resize (and thus- maximize0 functionality, restore behaviors later:
				function OpenForm(sender, args) {
					var oWnd = radopen(null, "existing");
					var currBehaviors = oWnd.get_behaviors();
					oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Default);
					if (!oWnd.isMaximized()) {
						oWnd.maximize();
					}
					oWnd.set_behaviors(currBehaviors);
					
				}
- OR, have the Behaviors property contain either of the Maximize or Resize behavior. Or use the Default value

			<telerik:RadWindowManager runat="server" ID="rwm1">
				<Windows>
					<telerik:RadWindow runat="server" ID="existing" Behaviors="Close, Resize">
					</telerik:RadWindow>
				</Windows>
			</telerik:RadWindowManager>

			<telerik:RadButton ID="Button5" Text="open existing rw from rwm 3" AutoPostBack="false" OnClientClicked="OpenForm" runat="server"></telerik:RadButton>

			<script>
				function OpenForm(sender, args) {
					var oWnd = radopen(null, "existing");
					
					
				}
				function OnClientShow(sender, args) {
					if (!sender.isMaximized()) {
						sender.maximize();
					}
				}
			</script>
Completed
Last Updated: 08 May 2017 13:57 by ADMIN
ADMIN
Created by: Marin Bratanov
Comments: 3
Category: Window
Type: Bug Report
0
Most notable issues 
- Metro skin does not show the correct (blue) color. For a timeline and status updates for the Lightweight mode follow https://feedback.telerik.com/Project/108/Feedback/Details/216601-wrong-titlebar-colors-in-metro-and-metrotouch-skins-in-lightweight-rendermode
- RTL mode does not order the buttons properly

Workarounds for both:

                         /*lightweight mode*/
			.RadWindow_Metro div.rwTitleBar,
			.RadWindow_MetroTouch div.rwTitleBar
			{
			background-color: #25a0da;
			}
			/* if you want all the borders blue */
			div.RadWindow_Metro,
			div.RadWindow_MetroTouch
			{
			border-color: #25a0da;
			background-color: #25a0da;
			}

			.rwRtl .rwCommands li.rwListItem
			{
				float: right; 
			}


                       /* classic mode- metro skin color issue*/
			div.RadWindow_Metro .rwTitleRow
			{
			    background-color: #25a0da;
			}
Completed
Last Updated: 03 Nov 2016 10:57 by Miguel Angel
Unplanned
Last Updated: 03 Nov 2020 11:21 by ADMIN
ADMIN
Created by: Marin Bratanov
Comments: 0
Category: Window
Type: Feature Request
0
The Lightweight RenderMode of the RadWindow does not have a <label> element next to the <input> inside the status bar.

When running this through automated accessibility checks, this can be reported as an issue.

It is very likely a false positive because:
- when the WAI-ARIA support of the control is enabled (EnableAriaSupport="true"), the role="presentation" attributes is present and it should instruct screen readers to skip this part of the page.
- the input has the readonly and unselectable attributes which should indicate to screen readers that the user cannot interact with it.

Nevertheless, there are several possible workarounds:
- use the Classic RenderMode of the control. It renders a <label> element, but uses many tables.
- remove the input (see Example 1 below)
- add a label (see Example 2 below)

Like this idea to vote for adding a <label> for the statusbar <input> in the Lighweight RenderMode as well. Otherwise, a <label> will not be added.


Example 1: remove the statusbar input

			<telerik:RadWindow runat="server" ID="RadWindow1" VisibleStatusbar="false" RenderMode="Lightweight" EnableAriaSupport="true" VisibleOnPageLoad="true" NavigateUrl="http://www.telerik.com/" OnClientShow="removeStatusInput"></telerik:RadWindow>
			<script>
				function removeStatusInput(sender, args) {
					$telerik.$(".rwStatusBar input", sender.get_popupElement()).remove();
				}
			</script>




Example 2: add a statusbar label

			<telerik:RadWindow runat="server" ID="RadWindow1" VisibleStatusbar="false" RenderMode="Lightweight" EnableAriaSupport="true" VisibleOnPageLoad="true" NavigateUrl="http://www.telerik.com/" OnClientShow="addStatusLabel"></telerik:RadWindow>
			<script>
				function addStatusLabel(sender, args) {
					var label = $telerik.$(".rwStatusBar label", sender.get_popupElement());
					if (label.length == 0) {
						label = document.createElement("label");
						label.setAttribute("for", $telerik.$(".rwStatusBar input", sender.get_popupElement()).attr("id"));
						label.style.display = "none";
						label.innerHTML = "status label";
						$telerik.$(".rwStatusBar", sender.get_popupElement()).append(label);
					}
				}
			</script>
Completed
Last Updated: 11 Jun 2020 12:32 by ADMIN
Created by: Magnus Modig
Comments: 1
Category: Window
Type: Feature Request
0
I would like to be able to detect Close event when user click x symbol to Close window
Completed
Last Updated: 26 Sep 2016 13:50 by ADMIN
When you create a dynamic tooltip that loads its content from a service (http://demos.telerik.com/aspnet-ajax/tooltip/examples/radtooltipmanagerclientapi/defaultcs.aspx), its height is 100% while the loading takes place.

You can workaround this issue by configuring a small initial height for the tooltip (for example 50px), then using the following script to change its height according to the loaded content:
		<telerik:RadToolTipManager runat="server"  OnClientResponseEnd="onClientResponseEnd" Height="50px" >
                        ...
		</telerik:RadToolTipManager>

		<script>
			function onClientResponseEnd() {
				var current = Telerik.Web.UI.RadToolTip.getCurrent();
				if (current) {
					var height = $telerik.getBounds(current.get_contentElement()).height;
					current.set_height(height);
				}
			}
		</script>
Completed
Last Updated: 12 Apr 2019 16:28 by ADMIN
Created by: Othmanee
Comments: 2
Category: Window
Type: Bug Report
0
The control RadWindow render his element with incorrect names of css classes:
like he rendered rwTitleBar instead of rwTitlebar, and rwStatusBar instead of rwStatusbar
this bug is produced only when i  use a custom theme. 
please if you have a solution bring that.
Declined
Last Updated: 14 Jun 2021 15:14 by ADMIN
Created by: Imported User
Comments: 1
Category: Window
Type: Feature Request
0
I was using a RadWindowManager with PreserveClientState=True for the purpose of maintaining the size of the RadWindow following postbacks to the server (the user was allowed to resize the RadWindow).  I had javascript to adjust the layout of the controls inside of the RadWindow based on the RadWindow size.  

Following a postback, there was no way to know when the RadWindow's size had been adjusted back to the user's setting because there are no events that indicate when the client state has been restored.  I would like to request that you add an OnClientStateRestored event to the RadWindowManager so that we can execute code once the layout of the RadWindow is finalized following a postback.
Completed
Last Updated: 26 Apr 2018 14:36 by Bill O'Neil
ADMIN
Created by: Ivan Zhekov
Comments: 3
Category: Window
Type: Feature Request
3
Based on customer report: scrollbar of RadWindow disappears after moving the window. Producible on our demos -- http://demos.telerik.com/aspnet-ajax/window/examples/minmaxsize/defaultcs.aspx.

Note: Chrome specific bug: https://bugs.chromium.org/p/chromium/issues/detail?id=641881
Completed
Last Updated: 25 Apr 2016 10:06 by ADMIN
Completed
Last Updated: 31 May 2021 09:06 by ADMIN
I'd like to send JSON (or string) object to RadWindow to be able to populate its content with  this object.
Similar to Value RadNotification property: public string Value { get; set; }

Code snippet below illustrates what I'd like to achieve.


function showWindow(jsonObject) {
    var windowManager = GetRadWindowManager();
    if (windowManager) {
        var window = windowManager.getWindowByName("RadWindow1");

        if (window != null) {
            window.DynamicContent = jsonObject; //Set content
            window.show();
        }
    }
    return;
}

function RadWindow1_Show(sender, args) {
    var jsonObject = sender.DynamicContent;

    if (jsonObject != null) {
        var selector = null;

        selector = 'span[id*="Content"]';
        var domElements = $telerik.$(selector);
        if (domElements != null && domElements.length > 0) {
            var spanId = domElements.attr('id');
            var span = $get(spanId);
            if (span != null)
                span.innerHTML = message;
        }
    }

    return;
}
Completed
Last Updated: 11 Mar 2016 14:24 by ADMIN
Completed
Last Updated: 11 Mar 2016 07:08 by ADMIN
Completed
Last Updated: 01 Apr 2016 07:04 by ADMIN
ADMIN
Created by: Marin Bratanov
Comments: 0
Category: Window
Type: Bug Report
0
To get the RadWindow to center properly, you need to use its OnClientAutoSizeEnd event and  call its center() method:

This issue affects only the Q1 2016 SP1 release.

		<script>
			function OnClientAutoSizeEnd(sender, args) {
				sender.center();
			}
		</script>
		<telerik:RadWindow ID="RadWindow1" runat="server" OpenerElementID="Button1" AutoSize="true" Modal="true" OnClientAutoSizeEnd="OnClientAutoSizeEnd">
			<ContentTemplate>
				<div style="width: 600px; height: 400px; background: yellow;">dummy content for autosizing</div>
			</ContentTemplate>
		</telerik:RadWindow>
		<asp:Button ID="Button1" Text="open RW" runat="server" />
Completed
Last Updated: 12 Mar 2016 15:20 by ADMIN
For the time being you can use the following CSS workaround:
	<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
		<style>
		html .RadWindow_Bootstrap.rwLoading .rwExternalContent {
			background-image: url('	<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this, typeof(RadWindow), "Telerik.Web.UI.Skins.Bootstrap.Common.loading.gif") %>')
		}
	</style>
	</telerik:RadCodeBlock>