嗨,这是当前的版本......请帮助。
“>
使用System; 使用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;
public partial class Default2:System.Web.UI.Page { private void BindGrid() { DirectoryInfo目录=新的DirectoryInfo(“D:/ Pilabs Projects / GlobeDse / globedse website / globedse.com / Uploads”); FileInfo [] files = dir.GetFiles(); GridView1.DataSource = files; 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();
}
}
答案 0 :(得分:0)
首先,检查您的方法Downloadfile
是否受到攻击。你也做了
Response.Write(FullPath);
哪种方式破坏你的输出。我宁愿将其设计为您重定向到另一个输出下载的页面。
答案 1 :(得分:0)
你错过了对回发的检查。你的Page_Load应该是这样的:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
重新数据绑定网格时,事件将丢失。