[英]download problem asp.net
嗨,这是当前版本……请帮助。
'>
使用系统; 使用System.Collections; 使用System.Configuration; 使用System.Data; 使用System.Linq; 使用System.Web; 使用System.Web.Security; 使用System.Web.UI; 使用System.Web.UI.HtmlControls; 使用System.Web.UI.WebControls; 使用System.Web.UI.WebControls.WebParts; 使用System.Xml.Linq; 使用System.IO;
公共局部类Default2:System.Web.UI.Page {私有void BindGrid(){DirectoryInfo dir = new DirectoryInfo(“ D:/ Pilabs Projects / GlobeDse / globedse website / globedse.com / Uploads”); FileInfo [] files = dir.GetFiles(); GridView1.DataSource =文件; GridView1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
private void Downloadfile(String fileName, String FullFilePath)
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile(FullFilePath);
Response.End();
}
protected void GridView1_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
if (e.CommandName == "Download")
{
String[] fileInfo = e.CommandArgument.ToString().Split(';');
String FileName = fileInfo[1].ToString();
String FullPath = fileInfo[0].ToString();
Downloadfile(FileName, FullPath);
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.PageIndex = e.NewPageIndex
BindGrid();
}
}
首先,检查您的方法Downloadfile
是否被命中。 你也做了
Response.Write(FullPath);
这有点破坏您的输出。 我宁愿设计它重定向到另一个输出下载的页面。
您缺少支票回发。 您的Page_Load应该看起来像这样:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
重新绑定网格时,事件将丢失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.