简体   繁体   English

Ajax回发后如何从代码隐藏中调用javascript函数

[英]How to call javascript function from code-behind after ajax postback

I'm using Telerik controls in my project and I am using RadTabStrip for my purposes 我在项目中使用Telerik控件,并且出于我的目的使用RadTabStrip

<telerik:RadTabStrip ID="tsRequisitions" Skin="" MultiPageID="mpRequisitions" runat="server" Width="980"  ScrollButtonsPosition="Right" ScrollChildren="True" OnTabCreated="tabCreated">

As you can see in this template I call tabCreated method every time when new tab has created. 您可以在此模板中看到,每次创建新选项卡时,我都会调用tabCreated方法。 Now I want to call some javascript function from server-side(all mentioned is in RadAjaxPanel). 现在,我想从服务器端调用一些javascript函数(提到的全部在RadAjaxPanel中)。

I've tried to use RegisterClientScriptBlock , but it didn't help me to fire my javascript function. 我尝试使用RegisterClientScriptBlock ,但是它没有帮助我启动我的javascript函数。

if (!ClientScript.IsClientScriptBlockRegistered("tabSelected"))
            {
                ClientScript.RegisterClientScriptBlock(this.GetType(),
                    "tabSelected", "TabSelected();", true);
            }

And I have this in my .aspx file 我的.aspx文件中有这个

<script type="text/javascript">
    function TabSelected() {
       console.log("dfgdfgfdg");
    }          
</script>

How can I call my function from code-behind after AJAX postback? 如何在AJAX回发后从代码隐藏调用函数?

The following code snippet do the trick 下面的代码片段可以解决问题

RadScriptManager.RegisterStartupScript(this,this.GetType(), "tabSelectedScript", "TabSelected();", true);

RegisterStartupScript is static method of RadScriptManager class (I'm using Telerik controls here again, but maybe it will work with asp.net standart ScriptManager too). RegisterStartupScriptRadScriptManager类的静态方法(我在这里再次使用Telerik控件,但也许它也可以与asp.net标准的ScriptManager一起使用)。

你尝试过这个吗?

    Page.RegisterStartupScript("OnLoad", "<script>TabSelected();</script>");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM