点击按钮没有反应,帮我看看是哪里错了!webform2.aspx<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="schoolmanager.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" Width="320px" AutoGenerateColumns="False"
CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966"
ShowHeader="False">
<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="booksname">
<HeaderStyle Width="100px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="下载">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemTemplate>
<asp:Button id="down_Click" runat="server" Text="下载" CommandName="Download"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
</asp:datagrid></form>
</body>
</HTML>
webform2.aspxusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;namespace schoolmanager
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
schoolmanager.publicclass.DataBound db=new schoolmanager.publicclass.DataBound();//自己写的数据绑定类
DataGrid1.DataSource=db.BoundData("select * from BooksInf","BooksInf");
DataGrid1.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "Download")
{
//文件名
string fileExcel = e.Item.Cells[0].Text;
//取得的文件存储路径
string filePath = Server.MapPath("\\schoolmanager\booksrar");
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,System.Text.Encoding.UTF8)) ;
Response.BinaryWrite(bytes);
Response.End();
} }
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" Width="320px" AutoGenerateColumns="False"
CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966"
ShowHeader="False">
<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="booksname">
<HeaderStyle Width="100px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="下载">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemTemplate>
<asp:Button id="down_Click" runat="server" Text="下载" CommandName="Download"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
</asp:datagrid></form>
</body>
</HTML>
webform2.aspxusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;namespace schoolmanager
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
schoolmanager.publicclass.DataBound db=new schoolmanager.publicclass.DataBound();//自己写的数据绑定类
DataGrid1.DataSource=db.BoundData("select * from BooksInf","BooksInf");
DataGrid1.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "Download")
{
//文件名
string fileExcel = e.Item.Cells[0].Text;
//取得的文件存储路径
string filePath = Server.MapPath("\\schoolmanager\booksrar");
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,System.Text.Encoding.UTF8)) ;
Response.BinaryWrite(bytes);
Response.End();
} }
}
}
解决方案 »
- 给定几个字母 排出所有的组合可能一个排列组合的问题 高手帮解答下
- Repeater中,如何根据不同的值加载不同的控件?
- asp.net MVC3 ModelState.IsValid数据验证问题:
- 启动调试的时候需不需要手工启动?貌似不需要?
- ASP.NET实用技巧(一),转
- 有关protected void Application_Start(Object sender, EventArgs e)方法?
- 在ASP.NET中Request取不到正确的中文参数问题,例如:从dropdownlist中取值,中文的取来的值不正确,这是为什么?怎么解决??
- .NET事件处理问题
- 简单问题,求各位大虾帮帮小弟!在线等
- 关于WEB框架问题,高手指点
- aspx页面如何调用一些cs文件里面的方法?
- 从Excel表格导出数据到SQL Server。
<asp:Button id="down_Click" runat="server" Text="下载" CommandName="Download" OnClick=Button1_Click></asp:Button>后台:
public void Button1_Click(object sender, System.EventArgs e)
{
string fileExcel = e.Item.Cells[0].Text;
//取得的文件存储路径
string filePath = Server.MapPath("\\schoolmanager\booksrar");
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,System.Text.Encoding.UTF8)) ;
Response.BinaryWrite(bytes);
Response.End();}
未能找到文件“D:\毕业设计\schoolmanager\booksrar\aaa.rar”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IO.FileNotFoundException: 未能找到文件“D:\毕业设计\schoolmanager\booksrar\aaa.rar”。源错误:
行 20: {
行 21: string path=Server.MapPath(Request.Params["fileurl"].ToString());
行 22: System.IO.FileStream fs = System.IO.File.OpenRead(path);
行 23: byte[] FileData = new byte[fs.Length];
行 24: fs.Read(FileData,0,(int)fs.Length);
源文件: d:\毕业设计\schoolmanager\download.aspx.cs 行: 22
aaa.rar是文件。代码:
libary.aspx.cs
private void dgbook_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if(((LinkButton)e.CommandSource).CommandName=="bookname")
{
string fileurl = ((HtmlInputHidden)e.Item.FindControl("hdd")).Value;
Response.Redirect("download.aspx?fileurl="+fileurl);
}
}download.aspx.csprivate void Page_Load(object sender, System.EventArgs e)
{
string path=Server.MapPath(Request.Params["fileurl"].ToString());
System.IO.FileStream fs = System.IO.File.OpenRead(path);
byte[] FileData = new byte[fs.Length];
fs.Read(FileData,0,(int)fs.Length);
Response.Clear();
Response.AddHeader("Content-Type", "application/zip");
string FileName = System.Web.HttpUtility.UrlEncode (System.Text.Encoding.UTF8.GetBytes(path));
Response.AddHeader("Content-Disposition","inline;filename="+ System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34));
Response.AddHeader("Content-Length", fs.Length.ToString());
Response.BinaryWrite(FileData);
fs.Close();
System.IO.File.Delete(path);
Response.End();
}
<ItemTemplate>
<TABLE style="WIDTH: 359px; HEIGHT: 18px">
<TR>
<TD>○</TD>
<TD>
<asp:LinkButton id=bookname runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"booksname") %>' CommandName="bookname">
</asp:LinkButton></TD>
<TD><INPUT id=hdd type=hidden value='<%# DataBinder.Eval(Container.DataItem,"bookurl")%>' name=hdd runat="server"> </TD>
<TD>作者:</TD>
<TD><%# DataBinder.Eval(Container.DataItem,"bookauther")%></TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:datalist>
又D:\毕业设计\schoolmanager\booksrar\aaa.rar是你的虚拟目录吗?
/// 文件下载
/// </summary>
/// <param name="FullFileName"></param>
private void FileDownload(string FullFileName)
{
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer=false;
Response.ContentType="application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}