【问题标题】:Unable to call Javascript from Codebehind无法从 Codebehind 调用 Javascript
【发布时间】:2011-01-06 17:16:21
【问题描述】:

我知道我的问题很常见,类似的类型在这里被问过很多次,但我的问题有些不同。我正在开发 ASP.Net 4.0 Web 应用程序,在我需要的页面上,我有 ajax 工具包 4 日历控件、工具包脚本管理器和一些 asp 控件。现在从那个弹出窗口中,我正在对按钮单击进行保存操作。我想要的是在成功保存后关闭弹出窗口。问题不在于保存,而是保存后,自动关闭弹出屏幕。我尝试了以下方法:

  1. RegisterStartUpScriptBlock(this.GetType,"closeForm","re​​turn window.close();") 和所有其他必需参数
  2. ClientScript.RegisterStartUpScript()--- 连同参数和两者都返回 window.close();和 window.close() 也和 self.close();
  3. 我也有在标题标签下...

我想我已经尝试了所有方法,我可以。我觉得我迷路了。请帮帮我....

【问题讨论】:

    标签: asp.net c#-4.0


    【解决方案1】:

    如果您在页面上使用脚本管理器...

    首先在你的html中创建一个关闭js中日历的函数...

     function closeCalendar(){
       ....
    }
    

    然后在代码隐藏中使用 this 来调用那个 js 函数

    string script = string.Format(@"closeCalendar()");
    
    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true);
    

    【讨论】:

    • ;-( 我没有使用脚本管理器。Ajax Control Toolkit 3.5+ 不允许使用 asp 脚本管理器。我认为 toolkitscriptmanager 是发生这种情况的主要原因
    • 也许这与 toolkitscriptmanager 有一些变化...虽然我不熟悉那个控件或 Ajaxtoolkit 3.5+
    【解决方案2】:

    如果您指的弹出窗口是 AJAX Toolkit Modal Popup,您可以在代码隐藏中调用 popup.Hide();

    如果是浏览器窗口,您是否尝试从代码中删除 return 部分?

    注意windows.close() 将不起作用,除非通过window.open() 打开弹出窗口;

    另外,您是否尝试将脚本标记放在默认隐藏(服务器端 Visible=false)且仅在需要时显示的 PlaceHolder 控件中?

    【讨论】:

    • 我相信他将日历称为“弹出窗口”
    • 1.不,它是 modaldialog , 2. 我尝试了两种关闭窗口的方法。 window.close() 和 self.close 有和没有返回...请帮助我,我被卡住了
    • 您是否尝试调用类似 modalDialog.Hide();在代码隐藏代码中?
    • ModalDialog 扩展器没有ID吗?比方说 ModalDialogExtender1?在按钮点击事件内部调用 ModalDialogExtender1.Hide();
    • 对不起,它不是模态对话框扩展器,它是一个普通的浏览器模态对话框,我已经使用 window.showmodaldialog()..
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2012-09-12
    • 2013-05-02
    相关资源
    最近更新 更多