2009-09-28 64 views
0

我想在用户单击按钮时关闭ShadowBox弹出框。弹出窗口在Iframe中显示单独的页面。 这适用于取消按钮控件上的客户端事件,例如,ASP.Net&jQuery - 关闭弹出框

OnClientClick="javascript:parent.Shadowbox.close();" 

然而,确定按钮有一个服务器端事件,因为数据需要保存。当我从上面定义OnClick和OnClientClick处理程序时,IFrame将关闭,并且服务器端事件处理程序不会触发。

我试图从标记删除的OnClientClick事件处理程序,并使用ClientScriptManager做到这一点,因为在

Page.ClientScript.RegisterStartupScript(this.GetType(), 
    "Close", "parent.Shadowbox.close();", true); 

显然是因为这些按钮是一个UpdatePanel,剧本没有得到登记,它不会出现在Reponse流中。 IPanel保持打开状态。

我该怎么做?

+0

你是怎么解决这个问题的?你可以通过代码吗? – helpme 2012-11-09 21:39:43

回答

1

当您使用MS AJAX控件时,您需要使用ScriptManager而不是ClientScript注册脚本。

+0

您的意思是这样的: ScriptManager.RegisterStartupScript(this,this.GetType(), “CloseScript”,“window.close();”,true); 没有区别。 – cdonner 2009-09-28 15:54:20

+0

嗯。我现在很感兴趣,为什么你的原始设置阻止了回发。 OnClientClick不应该阻止回发,如果你的JavaScript没有返回false .... – womp 2009-09-28 16:20:16

+0

我写了一个新的方法,显式返回true,仍然没有回传。 – cdonner 2009-09-28 17:02:02