gpt4 book ai didi

c# - 发送文件后关闭模态弹出窗口

转载 作者:行者123 更新时间:2023-11-30 22:15:27 27 4
gpt4 key购买 nike

我正在寻找某种行为,其中 ModalPopup 为要下载的文件建议一个(业务规则驱动的)文件名。

enter image description here

如果用户单击“确定”,则文件已下载,弹出窗口应关闭。取消只是关闭它。这都是由代码驱动的:

protected void ExportPromptOkButton_Clicked(object sender, EventArgs e)
{
string path = MapPath(ExportPromptPanelFileName.Text);
WriteExport(path);
ExportPromptModalPopupExtender.Hide();
this.SendFile(path, "text/plain");
}

//...

public static void SendFile(this Page webPage, string filepath, string contenttype)
{
webPage.Response.AddHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filepath));
webPage.Response.ContentType = contenttype;
webPage.Response.WriteFile(filepath);;
webPage.Response.End();
}

问题是 Response.End(); 终止了所有操作(好吧,它应该如此),因此模态窗口本身不会关闭。

什么是正确的方法?我正在考虑使用 iframe 并调用它的 Response 来发送文件,但我想确认这是否是合适的或者是否有更好的东西。

ASPX声明:

<ajaxToolkit:ModalPopupExtender 
runat="server"
ID="ExportPromptModalPopupExtender"
BackgroundCssClass="modalBackground"
TargetControlID="ExportButton"
PopupControlID="ExportPromptPanel"
PopupDragHandleControlID="ExportPromptPanelHeader"
CancelControlID="ExportPromptCancelButton"
Drag="true">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="ExportPromptPanel" runat="server" CssClass="popupConfirmation" style="display: none;">
<div class="popupContainer" style="width:300px">
<div class="popupHeader" id="ExportPromptPanelHeader">
<div class="popupHeaderLeft">Export</div><div class="popupHeaderRight"></div>
</div>
<div class="popupBody">Export under the following name:<br />
<asp:TextBox ID="ExportPromptPanelFileName" runat="server" MaxLength="60" Width="230px"></asp:TextBox></div><div class="popupButtons">
<asp:Button ID="ExportPromptOkButton" runat="server" Text="Ok" OnClick="ExportPromptOkButton_Clicked" />
<asp:Button ID="ExportPromptCancelButton" runat="server" Text="Cancel" />
</div>
</div>
</asp:Panel>

最佳答案

您可以设置扩展器的 OkControlID 属性以在单击 Ok 按钮时隐藏弹出窗口,并为自定义 javascript 函数设置 OnOkScript 属性,这将强制从确定按钮(模态弹出扩展器防止从确定和取消控件回发)。

<script type="text/javascript">
function doExport() {
__doPostBack("<%= ExportPromptOkButton.UniqueID %>", "");
}
</script>


<ajaxToolkit:ModalPopupExtender
runat="server"
ID="ExportPromptModalPopupExtender"
BackgroundCssClass="modalBackground"
TargetControlID="ExportButton"
PopupControlID="ExportPromptPanel"
PopupDragHandleControlID="ExportPromptPanelHeader"
CancelControlID="ExportPromptCancelButton"
OkControlID="ExportPromptOkButton"
OnOkScript="doExport"
Drag="true">
</ajaxToolkit:ModalPopupExtender>

关于c# - 发送文件后关闭模态弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951491/

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