【问题标题】:Call Javascript from code behind after partial postback部分回发后从后面的代码调用 Javascript
【发布时间】:2012-07-13 10:55:34
【问题描述】:

我在 UpdatePanel 中的 UserControl 中有一个 RadTreeView,并在 jQuery 弹出窗口中打开。控件中的一个按钮会引发一个单击事件,该事件由包含页面拾取,并导致用户控件从用户控件后面的代码向 RadTreeView 添加一个新节点。一旦发生这种情况,我想调用一个 JavaScript 函数(循环遍历所有节点并根据过滤字符串设置它们的可见性)。理想情况下,我想从用户控件中的同一函数设置此脚本调用。

我已经从用户控件后面的代码中尝试了以下内容

ScriptManager.RegisterClientScriptBlock(
            this, 
            this.GetType(),
            "filter", 
            "filterItems('" + this.RadTV.ClientID + "','" + this.txtFilter.Text + "');", 
            true );

我也从父页面后面的代码中尝试了类似的东西,并使用适当的 UpdatePanel 注册了脚本块。

在这两种情况下,脚本都不会被调用。

有什么想法吗?

干杯

斯图尔特

【问题讨论】:

    标签: c# asp.net asp.net-ajax


    【解决方案1】:

    您需要处理程序来执行此操作。

        <script type="text/javascript" language="javascript">
            Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandle);
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);
              function beginRequestHandle(sender, Args) {
              //Do something when call begins.
              }
    
              function endRequestHandle(sender, Args) {
              Yourfunction();//Call your function here
              }
        </script>
    

    【讨论】:

    • 谢谢,但你能放大一下吗?如果我将此代码添加到页面中,如何在部分回发时调用它?
    • 您想在通话结束后还是通话开始前通话。
    • 然后像上面一样在 endRequestHandle() 中调用你的函数,用你的代码/函数替换 YourFunction()。
    • 但是处理程序何时以及从何处被调用?对不起,如果这些是幼稚的问题,但对 JS 处理程序没有经验。
    • 实际上,处理程序是在 Ajax 框架的前两行中注册的。 Ajax 框架自身调用处理程序。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2015-05-11
    • 2019-09-06
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    相关资源
    最近更新 更多