データをダウンロードしている aspx ページにドロップダウンがあります。ドロップダウンからファイル形式を選択すると、データはその特定の形式でダウンロードされます
これが私のドロップダウンです。
<asp:DropDownList ID="ddlExportRprts" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlExportRprts_SelectedIndexChanged">
<asp:ListItem Text="Select" Value="0" Selected="True"></asp:ListItem>
<asp:ListItem Text="Excel" Value="1"></asp:ListItem>
<asp:ListItem Text="CSV" Value="2"></asp:ListItem>
</asp:DropDownList>
これがドロップダウンのバックエンド メソッドです。
protected void ddlExportRprts_SelectedIndexChanged(object sender, EventArgs e)
{
string strFileName="Test";
string strDataFilePath = Server.MapPath("./AttachedFiles/") + "\\" + strFileName + ".xls";
DownLoadFile(strDataFilePath, strFileName);
}
private void DownLoadFile(string strFilePath, string strFileName)
{
if (System.IO.File.Exists(strFilePath))
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename =" + strFileName + ".xls");
ddlExportRprts.SelectedValue = "0";
Response.TransmitFile(strFilePath);
Response.End();
}
}
ドロップダウンファイルからオプションを選択すると、選択した形式でダウンロードされます..問題はありません。
しかし、ファイルがダウンロードされた後、ボタン、リンクボタン、チェックボックス、ラジオボタンなどのサーバー側のコントロールをクリックすると、このメソッド「ddlExportRprts_SelectedIndexChanged()」が呼び出されます。クリックイベントで。
呼び出していないときにこれらのメソッドが起動される理由がわかりません。
私は長い間この問題に悩まされています.誰かがそれを解決する方法を知っていることを願っています..
事前に乾杯.. :)