我不确定我是否正在改进这个答案,我只是想让它更容易理解。我有一个从主页打开的 rad 窗口。radwindow 是在代码隐藏 (C#) 中打开的,而不是 Javascript。当我的用户单击 RadWindow 上的 Save 按钮时,它会执行一些逻辑任务,然后关闭 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();");
或者
VB ClientScript.RegisterStartupScript(Me.GetType(), "", "CloseDialog();")
如果您想知道如何从代码隐藏中打开 radwindow,我就是这样做的:
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>
如果我犯了错误,这应该可以工作,请纠正我。
谢谢