点击事件中定义控件的Visible属性没有立刻生效,如何解决?
想实现的功能是点击Button5后先令Panel4可见,提示用户等待,然后再执行文件导出。目前调试下来是弹窗跳出导出成功后,页面刷新完成才能显示Panel4。请大神将解决方法些稍微详细一些,本人小白。
前端代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" Visible="False" UpdateMode="Conditional">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Panel ID="Panel3" runat="server" Visible="False">
<div class="FunctionDiv3">
<span class="FunctionFont3">导入失败数据:</span>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
<div style="float: right">
<asp:Button ID="Button5" runat="server" Text="导出" CssClass="FunctionButton" OnClick="Button5_Click" />
<asp:Button ID="Button6" runat="server" Text="返回" CssClass="FunctionButton" OnClick="Button4_Click" />
</div>
</div>
</asp:Panel>
<asp:Panel ID="Panel4" runat="server" Visible="False">
<img src="Image/Wait.gif" />正在导出,请耐心等待…
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button5"/>
</Triggers>
</asp:UpdatePanel>
后端代码:
protected void Button5_Click(object sender, EventArgs e)
{
Panel4.Visible = true;
System.Data.DataTable ds = ViewState["ErrorDataTable"] as System.Data.DataTable;
string path = HttpRuntime.AppDomainAppPath.ToString() + "File\\用户管理-批量新增失败数据.xls";
if (ViewState["ErrorDataTable"] != null)
{
DataTabletoExcel(ds, path);
FileDownload(path, "用户管理-批量新增失败数据.xls");
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('导出成功!');", true);
}
else
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('导出失败!');", true);
}