··DataGrid1_ItemCommand需要实现下载功能,命令没有错误,为什么无法触发ItemCommand事件??点击按钮后没有任何反应。有代码,在线等
希望在模板列中使用button实现下载功能,C#,WEBFORM。以下是ASPX代码:
<asp:DataGrid id="DataGrid1" runat="server" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px"
DataKeyField="orderID" OnItemCommand="DataGrid1_ItemCommand" BackColor="White" CellPadding="4"
AutoGenerateColumns="False" Width="320px" OnPageIndexChanged="PageIndexChanged1" AllowPaging="True">
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="orderID" HeaderText="编号">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="fileName" HeaderText="文件名">
<HeaderStyle Width="100px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="模板下载">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemTemplate>
<asp:Button id="down_Click" runat="server" CommandName="Download" Text="下载"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
</asp:DataGrid>
.cs页面代码:这里pubilc如果使用private就会出现无权限的编译错误,而使用protected一样没有任何下载反应,根本没有触发button事件。
public void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "Download")
{
//文件名
string fileExcel = e.Item.Cells[1].Text;
//取得的文件存储路径
string filePath = Server.MapPath("\\UploadFiles");
string fileName = filePath + "\\" + fileExcel;
//以字符流的形式下载文件
FileStream fs = new FileStream(fileName, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileExcel)) ;
Response.BinaryWrite(bytes);
Response.End();
}
}
问题拖了好几天了,总是想不明白,请大家帮忙!!谢谢!!!!
原先帖子的地址:http://community.csdn.net/Expert/topic/3279/3279497.xml?temp=.1051294