我有一个UpdatePanel,在更新面板中我有一个按钮。 updatepanel还有一个与之关联的updateprogress控件,以便在updatepanel进行回发时显示加载图形。
如果单击更新面板中的按钮,则进度加载器显示正常。但是,如果我使用jQuery选择按钮并执行.click()
,则加载程序不会显示。面板确实回发并正确加载内容,但不会触发进度加载器。
为什么会出现这种想法?
答案 0 :(得分:1)
我刚试过你的情景。它在这里工作正常。
这是html
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:UpdateProgress runat="server" ID="UpdateProgress1">
<ProgressTemplate>
<img src="Images/ajax-loader.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<input id="btnTest" title="JQuery Click" onclick="ClickButton1()" type="button" value="JQuery Click" />
<script type="text/javascript">
function ClickButton1() {
// alert('#<%=Button1.ClientID %>');
$('#<%=Button1.ClientID %>').click();
}
</script>
以下是显示加载图片5秒钟的后端代码
protected void Button1_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
答案 1 :(得分:0)
我从来没有找到这个问题的答案,但没关系。我了解到更新面板仅出于某种原因一次只发出一个请求。页面生命周期和视图状态不能被破坏,因此异步请求一次只能进行一次。
获胜的MVC。