0

我有一个 AjaxControlToolkit ModalPopupExtender 允许选择要压缩和下载的文件。填充模式弹出窗口的 asp:Panel 中的 asp:Button 具有引用 sub 后面的代码的 OnClick 属性。这可以按预期工作,直到将 OkControlID 属性添加到 asp:ModalPopupExtender 以促进关闭弹出窗口...然后忽略 OnClick... 有谁知道我如何在弹出窗口中拥有相同的 asp:Button,调用代码隐藏子并关闭弹出窗口?

asp:Panel ID="DownLoadForm" runat="server" CssClass="download-form">
    <div class="download-header">Files Available For Download</div>
    <ul>
        <li><asp:CheckBox ID="CheckBox1" runat="server" checked="true" enabled="false"/> File 1</li>
        <li><asp:CheckBox ID="CheckBox2" runat="server" /> File 2</li>
        <li><asp:CheckBox ID="CheckBox3" runat="server" /> File 3</li>
        <li><asp:CheckBox ID="CheckBox4" runat="server" /> File 4</li>
        <li>&nbsp;</li>
        <li>
            <asp:Button ID="btnZipAndDownload" runat="server" Text="Zip And Download" OnClick="Download"/>
            <asp:Button ID="btnCancelDownload" runat="server" Text="Cancel" />
        </li>
    </ul>

</asp:Panel>
<asp:ModalPopupExtender ID="ModalPopupDownload" runat="server"
    PopupControlID="DownLoadForm"
    TargetControlID="btnDownloadFiles"
    CancelControlID="btnCancelDownload"
    OkControlID="btnZipAndDownload" >
</asp:ModalPopupExtender>

后面代码中的子是“下载”

Protected Sub Download(ByVal sender As Object, ByVal e As System.EventArgs)
    Try
        Dim FileName As String = "~/Mock_Files.zip"
        Response.AddHeader("Content-disposition", "attachment; filename=Mock_Borrower_Files.zip")
        Response.ContentType = "application/zip"
        Response.WriteFile(FileName, False)

    Catch ex As Exception
        Foo
        Foo too
    End Try

    Response.End()

End Sub
4

1 回答 1

1

您可以使用 OnClientClick 属性并通过__doPostBack函数调用强制回发:

<asp:Button ID="btnZipAndDownload" runat="server" Text="Zip And Download" OnClick="Download"
    OnClientClick="__doPostBack(this.name, '')" />
于 2012-11-09T19:49:44.343 回答