【发布时间】:2014-02-28 14:49:34
【问题描述】:
问题: 为什么我的 UpdateProgress 在初始页面加载期间不显示,但通过按钮单击进行后续回发?
我设法让它工作的唯一方法是使用计时器,我并不热衷于此。还有其他方法吗?
有人能解释一下为什么doSearch() 会导致更新进度通过按钮单击而不是通过文档准备好的页面加载来工作吗?
代码:
Js 处理程序:
<script>
$(document).ready(doSearch);
function doSearch() {
$('#<%= UpdatePanel1Trigger.ClientID %>').click();
return false;
}
</script>
aspx:
//if i click this button the updateprogress works
//and the panel loads
<asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="form-control"
OnClientClick="return doSearch();" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"
OnLoad="UpdatePanel1_Load" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:Button ID="UpdatePanel1Trigger" runat="server"
style="display:none" OnClick="UpdatePanel1Trigger_Click" />
<%--gridview that takes a while to load--%>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server"
AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
<ProgressTemplate>
<asp:Image ID="imgUpdateProgress1" runat="server"
ImageUrl="~/Images/spinner.gif" AlternateText="Loading ..." ToolTip="Loading ..."/>
</ProgressTemplate>
</asp:UpdateProgress>
代码隐藏:
protected void UpdatePanel1Trigger_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(m_search))
{
performSearch(); //loads data for gridview in updatepanel
}
}
【问题讨论】:
标签: c# javascript asp.net asp.net-ajax updatepanel