Я не уверен, что я улучшаю этот ответ, я просто пытаюсь облегчить его понимание. У меня есть рад окно, которое открывается с главной страницы. Radwindow открывается в коде позади (C #), а не в Javascript. Когда мой пользователь нажимает кнопку «Сохранить» в RadWindow, он выполняет некоторые логические задачи, а затем закрывает само RadWindow. Вам просто нужно:
Поместите этот блок кода в вас RadWindow aspx .....
<telerik:RadCodeBlock runat="server" ID="rcb1">
<script language="javascript" type="text/javascript">
function GetRadWindow()
{
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function CloseDialog(button)
{
GetRadWindow().close();
}
</script>
</telerik:RadCodeBlock>
Поместите этот код в нажатие кнопки RadWindow после выполнения логики предварительного закрытия (та же кнопка, которая выполняет другую логику, закрывает окно)
C #
ClientScript.RegisterStartupScript (typeof (string), "", "CloseDialog ();");
OR
VB
ClientScript.RegisterStartupScript (Me.GetType (), "", "CloseDialog ();")
Если вам интересно, как открыть это окно из кода, вот как я это сделал:
RadWindow window1 = new RadWindow();
// Set the window properties
window1.NavigateUrl = "winStrengthChart.aspx?EMPLOYIDNAME=" + parmString;
window1.ID = "RadWindow1";
window1.Width = 800;
window1.Height = 650;
window1.VisibleStatusbar = false;
window1.Behaviors = Telerik.Web.UI.WindowBehaviors.Close | Telerik.Web.UI.WindowBehaviors.Resize | Telerik.Web.UI.WindowBehaviors.Move;
window1.VisibleOnPageLoad = true; // Set this property to True for showing window from code
rwm1.Windows.Add(window1);
this.Form1.Controls.Add(window1);
... И, конечно, вам нужен базовый RadWindowManager на главной странице, которая открывает окно:
<telerik:RadWindowManager ID="rwm1" runat="server">
<Windows>
</Windows>
</telerik:RadWindowManager>
Это должно сработать, если я допустил ошибку, пожалуйста, исправьте меня.
Спасибо