点击事件中定义控件的Visible属性没有立刻生效,如何解决?

qq_41595933 2020-04-07 04:15:32
想实现的功能是点击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);
}
...全文
252 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
EdsionWang 2020-05-25
  • 打赏
  • 举报
回复
给Button一个OnClientClick,写个javascript方法设置display属性。 asp.net的执行可不是像你想象中WinForm中那样,你的一个ButtonClick事建相当于一个Http请求,到了服务器这里,服务器会处理完这个请求再返回给客户端来显示页面。所以,不是你Panel.Visible写在最前面,就最先给你展示这个效果来的。
イω 2020-05-22
  • 打赏
  • 举报
回复
使用css样式display:none试试吧

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧