gpt4 book ai didi

javascript - updatepanel 更新后如何调用 javascript 函数

转载 作者:行者123 更新时间:2023-11-30 13:42:16 24 4
gpt4 key购买 nike

<asp:UpdatePanel ID="UpdatePanel2" runat="server"
OnLoad="UpdatePanel2_Load" UpdateMode="Conditional">
<ContentTemplate>
<script type="text/javascript">
myFunction();
</script>
<asp:Label ID="Label1" runat="server" Text="1" Width="18px"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>

C#:

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

Label1 的值正在改变,但它没有调用 myFunction()。我想在某些情况下再调用一次但不使用 setTimeout 自动调用,一些想法?

最佳答案

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

<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>

关于javascript - updatepanel 更新后如何调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com