当我点击更新面板中的按钮时,我会看到更新进度,但是当我尝试通过javascript $(“#<%= LinkButton1.ClientID%>”)执行此操作时。单击();不显示updateprogress,但更新面板正在正确刷新。任何想法为什么更新进度不起作用?
<asp:UpdatePanel runat="server" ID="UpdPnl1" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="click"/>
<asp:PlaceHolder ID="Place1" runat="server"></asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="updQuoteProgress" runat="server" AssociatedUpdatePanelID="UpdPnl1" DisplayAfter="0">
<ProgressTemplate>Loading...</ProgressTemplate>
</asp:UpdateProgress>
<script type="text/javascript">
$(document).ready(function () {
$("#<%=Button1.ClientID %>").click();
})
</script>
答案 0 :(得分:4)
这是因为Sys.Application加载事件发生在页面的DOM完全加载之后。当您的脚本执行负责在部分回发时显示UpdateProgress的客户端对象尚未初始化时。 请尝试使用此脚本(将其放在ScriptManager控件下方或仅在页面末尾):
<script type="text/javascript">
Sys.Application.add_load(function () { $("#<%= Button1.ClientID %>").click(); });
</script>
您还可以使用以下脚本延迟脚本执行:
$(function () {
setTimeout('$("#<%= Button1.ClientID %>").click();', 10);
});