我正在尝试使用RadButton从窗口本身(通过javascript)关闭一个radwindow。是否可以调用脚本来关闭窗口?这是javascript:
function getRadWindow()
{
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function closeWindow()
{
getRadWindow().close();
}
这是按钮:
<telerik:RadButton ID="CancelButton" runat="server" OnClick="closeWindow();" CssClass="clicker" Text="Cancel" UseSubmitBehavior="False" EnableEmbeddedScripts="false" CausesValidation="False" RegisterWithScriptManager="False">
</telerik:RadButton>
我已尝试过所有内容,只有在使用纯HTML元素(如锚标记)时,脚本才会起作用。如果我使用OnClick事件,则在窗口打开时出现以下错误:Compiler Error Message: CS1026: ) expected.
我错过了什么吗?
谢谢!
答案 0 :(得分:3)
我不确定我是否正在改进这个答案,我只是想让它更容易理解。我有一个从主页打开的rad窗口。 radwindow在Code Behind(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();”);
OR
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>
如果我犯了错误,这应该有用,请纠正我。
由于
答案 1 :(得分:2)
从RadButton调用函数的方法是使用OnClientClicked或OnClientClicking事件。然后你需要只传递JavaScript函数的名称,不带括号。 OnClick是服务器处理程序的属性,常规asp按钮也是如此。试试这个:
<telerik:RadButton ID="CancelButton" runat="server" OnClientClicked="closeWindow" AutoPostBack="false" CssClass="clicker" Text="Cancel" UseSubmitBehavior="False" EnableEmbeddedScripts="false" CausesValidation="False" RegisterWithScriptManager="False">
请注意,AutoPostBack属性设置为false以防止回发。