updatepanel更新后如何调用javascript函数

updatepanel更新后如何调用javascript函数,javascript,c#,updatepanel,Javascript,C#,Updatepanel,Label1的值正在更改,但它不调用myFunction()。我想在某些条件之后再调用一次,但不使用setTimeout来自动调用,有什么想法吗 当UpdatePanel更新DOM并将脚本块重写到DOM中时,它们不会重新执行。您需要进入UpdatePanel完成后触发的客户端事件,并重新执行JS块: if(condition) { UpdatePanel2.Update(); } protected void UpdatePanel2_Load(object sender, Even

Label1的值正在更改,但它不调用myFunction()。我想在某些条件之后再调用一次,但不使用setTimeout来自动调用,有什么想法吗

当UpdatePanel更新DOM并将脚本块重写到DOM中时,它们不会重新执行。您需要进入UpdatePanel完成后触发的客户端事件,并重新执行JS块:

if(condition)
{
      UpdatePanel2.Update();
}
protected void UpdatePanel2_Load(object sender, EventArgs e)
{
        Label1.Text += 1;
}

函数handleEndRequest(发送方,参数)
{
var panel=document.getElementById(发送方._postBackSettings.panelID);
var scripts=panel.getElementsByTagName('script');

对于(var i=0;i我通过刷新整个页面使其工作起来了

我只是想知道我应该把这个函数放在哪里,就在我的函数之前还是放在页眉上。对不起,我是javascript新手,有人能给我更多的细节吗,谢谢。我已经把这个函数放在页眉和我的updatepanel2中了,但是它仍然不工作,想要更多的细节吗@Dirk将整个内容放在页面底部,在
@Rex M之后,我刚刚将此代码放在后面,这导致我的label1不再更新,我想这是因为我的代码变量prm=Sys.WebForms.PageRequestManager.getInstance();Sys.WebForms.PageRequestManager.getInstance()。添加endRequest(警报(“1”));setTimeout(“Update()”,1000);函数Update(){prm._doPostBack('UpdatePanel1','');setTimeout(“Update()”,1000);Sys.WebForms.PageRequestManager.getInstance().add_endRequest(displayVideo());},用于updatepanel1@Dirk您的
添加请求(functionName());
是一个错误。您正在调用alert,它不返回任何内容。您需要传递对要调用的函数的引用,而不是调用它。将
()
放在末尾会立即调用它。
if(condition)
{
      UpdatePanel2.Update();
}
protected void UpdatePanel2_Load(object sender, EventArgs e)
{
        Label1.Text += 1;
}
<script type="text/javascript">
    function handleEndRequest(sender, args)
    {
        var panel = document.getElementById(sender._postBackSettings.panelID);
        var scripts = panel.getElementsByTagName('script');
        for(var i=0;i<scripts.length;i++) {
            eval(scripts[i].innerHTML);
        }
    }

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(handleEndRequest);
</script>