When I have multiple ASP.NET validators on a page, I can't close a RadWindow that has an animation using my usual client-side javascript function. When I comment out the validators until there's just one left or disable the animation, suddenly it works perfectly again. I even tried using NavigateURL and moving all my markup to a separate page instead of using ContentTemplate and the window still wouldn't close until I either disabled animation or commented out validators until one was left.
I was able to recreate this in a fresh web site in VS2012 Pro, although another pre-existing project (different than the one I first discovered this error on) has multiple validators on one page and yet is fine. I also tried a few different versions ranging from the most recent, 2019.1.215.45, back to 2015.2.826.45. This leads me to believe there is something else that is a factor here, as I doubt I'm the only person to have tried to close a RadWindow under these circumstances since 2015.
Fortunately this error can be resolved for now by simply disabling animations on my RadWindows in that project, but I would like to be able to re-enable them at some point.
This is my code (no code-behind used):
01.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test1.aspx.vb" Inherits="Test1" %>
02.
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
03.
04.
<!DOCTYPE html>
05.
06.
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
07.
<
head
id
=
"Head1"
runat
=
"server"
>
08.
<
title
>Test1</
title
>
09.
</
head
>
10.
<
body
>
11.
<
form
id
=
"form1"
runat
=
"server"
>
12.
<
div
>
13.
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"rsm1"
>
14.
</
telerik:RadScriptManager
>
15.
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock1"
runat
=
"server"
>
16.
<
script
type
=
"text/javascript"
>
17.
18.
function openWindow(sender, args) {
19.
$find("<%= window.ClientID%>").show();
20.
}
21.
function closeWindow(sender, args) {
22.
try {
23.
$find("<%= window.ClientID%>").close();
24.
} catch (e) {
25.
alert(e);
26.
console.log(e);
27.
}
28.
}
29.
</
script
>
30.
</
telerik:RadScriptBlock
>
31.
<
telerik:RadWindow
runat
=
"server"
ID
=
"window"
RenderMode
=
"Lightweight"
Skin
=
"Material"
Modal
=
"true"
Animation
=
"Fade"
VisibleStatusbar
=
"false"
KeepInScreenBounds
=
"true"
Height
=
"125px"
Width
=
"300px"
Title
=
"Click Cancel"
Behaviors
=
"None"
>
32.
<
ContentTemplate
>
33.
<
telerik:RadPageLayout
ID
=
"layout"
runat
=
"server"
GridType
=
"Fluid"
Height
=
"100%"
>
34.
<
telerik:LayoutRow
style
=
"padding-top:3px;"
>
35.
<
Columns
>
36.
<
telerik:LayoutColumn
Span
=
"8"
>
37.
<
telerik:RadButton
runat
=
"server"
style
=
"float:right;"
RenderMode
=
"Lightweight"
Skin
=
"Material"
ID
=
"cancelBtn"
CssClass
=
"rbFlatButton"
Primary
=
"false"
Text
=
"Cancel"
AutoPostBack
=
"false"
OnClientClicked
=
"closeWindow"
/>
38.
</
telerik:LayoutColumn
>
39.
<
telerik:LayoutColumn
Span
=
"4"
>
40.
<
telerik:RadButton
runat
=
"server"
RenderMode
=
"Lightweight"
Skin
=
"Material"
ID
=
"okayBtn"
CssClass
=
"rbFlatButton"
Primary
=
"true"
Text
=
"Okay"
/>
41.
</
telerik:LayoutColumn
>
42.
</
Columns
>
43.
</
telerik:LayoutRow
>
44.
</
telerik:RadPageLayout
>
45.
</
ContentTemplate
>
46.
</
telerik:RadWindow
>
47.
<
telerik:RadTextBox
runat
=
"server"
ID
=
"text"
RenderMode
=
"Lightweight"
Skin
=
"Material"
/>
48.
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"val"
ControlToValidate
=
"text"
ErrorMessage
=
"Required!"
/>
49.
<
telerik:RadTextBox
runat
=
"server"
ID
=
"text2"
RenderMode
=
"Lightweight"
Skin
=
"Material"
/>
50.
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"val2"
ControlToValidate
=
"text2"
ErrorMessage
=
"Required!"
/>
51.
<
telerik:RadButton
runat
=
"server"
Text
=
"Open Window"
Enabled
=
"true"
RenderMode
=
"Lightweight"
ButtonType
=
"StandardButton"
ID
=
"openBtn"
Skin
=
"Material"
AutoPostBack
=
"false"
CausesValidation
=
"false"
OnClientClicked
=
"openWindow"
/>
52.
</
div
>
53.
</
form
>
54.
</
body
>
55.
</
html
>
And this is the error I got on opening the window and clicking cancel:
TypeError: $telerik.$(...).stopTransition is not a function
at c.RadWindow._hide (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:21454)
at c.RadWindow.hide (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:21314)
at c.RadWindow.close (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:22597)
at Array.closeWindow (Test1.aspx:76)
at Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:2556
at b.RadButton.raiseEvent (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:8930)
at g._clickedHandler (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:28089)
at b.BaseFunctionality.trigger (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:15055)
at b.BaseFunctionality.clicked (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:27039)
at b.PlainFunctionality.clicked (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=rsm1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a48bbf511-5bf9-4491-9be4-5464dcf4e3ba%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2019.1.215.45%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a05294e6d-c3f5-4495-92ed-e871448550ca%3a4877f69a%3a16e4e7cd%3af7645509%3a24ee1bba%3ab2e06756%3a92fe8ea0%3ac128760b%3a19620875%3a874f8ea2%3afa31b949%3af46195d3%3a33715776%3a490a9d4e%3a6d43f6d9%3ab7778d6c:formatted:26896)
Following the above stack trace, I went in to the _hide function and found the line (line 11 below) where the error was occurring, which was how I figured the animation was part of the issue:
01.
_hide:
function
() {
02.
if
(!
this
.get_animation() ||
this
.get_animation() == 0) {
03.
this
._afterHide();
04.
}
else
{
05.
if
(
this
._enableShadow && $telerik.isIE) {
06.
this
._setShadowCSSClass(
false
);
07.
}
08.
var
n = Function.createDelegate(
this
,
this
._afterHide)
09.
, o =
this
.isMaximized()
10.
, m =
this
.get_animationDuration();
11.
$telerik.$(
this
._popupElement).stopTransition().transition({
12.
opacity: 0
13.
}, m,
"linear"
,
function
() {
14.
n(o);
15.
});
16.
}
17.
}