gpt4 book ai didi

asp.net - 更新面板 PostBackTrigger,更新进度不显示

转载 作者:行者123 更新时间:2023-12-04 07:38:19 26 4
gpt4 key购买 nike

我有一个更新面板,并使用 PostBackTrigger 事件更新进度。但是当我点击按钮时没有显示更新进度。请找到以下示例代码

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="updatepanelDropDownTaskType" CssClass="Token-setup-popup" DynamicLayout="true">
<ProgressTemplate>
<div id="loading" class="loading">
<asp:Image runat="server" ID="imgBusyIndicator" ImageUrl="~/images/busy-indicator.gif" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="updatepanelDropDownTaskType" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:PostBackTrigger ControlID="btnExport" />
</Triggers>
<ContentTemplate>
<asp:Button ID="btnExport" runat="server" Text="Export To CSV" CssClass="button" CausesValidation="true" onclick="btnExport_Click" ClientIDMode="Static"/></asp:Button>
</ContentTemplate>
</asp:UpdatePanel>

我背后的代码
HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.ClearHeaders();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.ContentType = FileType;
Response.Write(content);
HttpContext.Current.ApplicationInstance.CompleteRequest();

最佳答案

那么你的代码是好的。问题出在您的 Triggers您在 UpdatePanel 中使用的.

微软说

The UpdateProgress control renders a <div> element that is displayed or hidden depending on whether an associated UpdatePanel control has caused an asynchronous postback. For initial page rendering and for synchronous postbacks, the UpdateProgress control is not displayed.



查看更多详情 MSDN

所以你正在使用 PostBackTrigger在您的 UpdatePanel这将导致 synchronous回传和 UpdateProgress不会出现。
<Triggers>
<asp:PostBackTrigger ControlID="btnExport" />
// Incorrect
</Triggers>

将其更改为
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnExport" />
// Correct
</Triggers>

这将显示您的 UpdateProgress并将按您的预期工作。

正如您在评论中提到的,您也在 Grid 上执行下载。 .同样的方式您可以注册您的 ButtonScriptManager .这将注册您的按钮并知道下载按钮 asynchronous回发。
 protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btnExport = e.item.FindControl("btnExport") as Button;
if (btnExport != null)
{
((ScriptManager)this.Page.Master.FindControl("ID of your Script manager")).RegisterPostBackControl(downloadDocColumn);
// In Above line i assumed Script Manager is placed on Your master page.
}
}
}

希望这可以帮助...

关于asp.net - 更新面板 PostBackTrigger,更新进度不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22190957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com