【发布时间】:2013-09-03 16:19:10
【问题描述】:
我想在我的 aspx 页面中调用一个 js 函数。我正在使用 ClientScript 路由。但是,我查看了几个论坛,但它似乎不起作用。我希望它很简单。我已经尝试过使用和不使用“页面”。
我的后台代码:
protected void btOpen_Click(object sender, EventArgs e)
{
Session["demog"] = 144;
Page page = HttpContext.Current.CurrentHandler as Page;
page.ClientScript.RegisterStartupScript(this.GetType(), "closeWindow", "closeWin();", true);
}
js函数:
<script type="text/javascript">
function closeWin() {
alert("closing!");
GetRadWindow().close();
}
function GetRadWindow() {
var oWindow = null;
if (window.radWindow)
oWindow = window.radWindow;
else if (window.frameElement.radWindow)
oWindow = window.frameElement.radWindow;
return oWindow;
}
</script>
<telerik:RadButton ID="btnOpen" runat="server" Text="Open" OnClick="btOpen_Click">
<Icon PrimaryIconCssClass="rbOpen" PrimaryIconLeft="4" PrimaryIconTop="4"></Icon>
</telerik:RadButton>
</telerik:RadAjaxPanel>
我有一个取消按钮,它调用 closeWin() 作为它的 onClientClick 并且工作正常。会不会是因为我使用的是 onClick,而不是 onClientClick 之类的?
【问题讨论】:
-
您的 OnClick 将调用 btOpen_Click 服务器端代码。这不是你想要的吗?
-
是的,然后我想在btOpen_Click结束时调用js函数
-
@WillTuttle - 研究 jQuery 和调用服务器端执行操作的方法,而不是尝试让 ASP.NET 页面生命周期与 JavaScript 一起运行。我建议使用 ASP.NET 页面方法将您的数据保存到服务器端会话缓存,然后 jQuery AJAX 调用的成功回调可以调用您的
closeWin()函数。您越远离 ASP.NET 回发周期,就可以避免尝试获取客户端功能的麻烦。 -
看看这个:stackoverflow.com/questions/6215722/… 和你的问题类似。
标签: javascript asp.net