我的 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()”,因为这些控件在那里点击事件。
我很困惑为什么当我不调用它时会触发这些方法。
我长期陷入这个问题,我希望有人知道如何解决它..
提前欢呼.. :)