ASP.NET教程之ASP.NET2.0中将GridView导出到Excel文件...
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。 上面代码完成将GridView导出到Excel文件中。值得注重的是VerifyRenderingInServerForm重载办法:
MSDN上的VerifyRenderingInServerForm办法的形貌:
必需位于<formrunat=server>标志中的控件能够在出现之前挪用此办法,以便在控件被置于标志外时显现毛病信息。发送回或依附于注册的剧本块的控件应当在Control.Render办法的重写中挪用此办法。出现服务器窗体元素的体例分歧的页能够重写此办法以在分歧的前提下激发非常。
假如回发或利用客户端剧本的服务器控件没有包括在HtmlForm服务器控件(<formrunat="server">)标志中,它们将没法一般事情。这些控件能够在出现时挪用该办法,以在它们没有包括在HtmlForm控件中时供应明白的毛病信息。
开辟自界说服务器控件时,一般在为任何范例的输出标志重写Render办法时挪用该办法。这在输出控件挪用GetPostBackEventReference或收回客户端剧本时特别主要。复合服务器控件不必要作出此挪用。
没有这个办法,程序将报错。
C#代码
<%...@PageLanguage="C#"EnableEventValidation="false"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">...
ICollectionCreateDataSource()
...{
System.Data.DataTabledt=newSystem.Data.DataTable();
System.Data.DataRowdr;
dt.Columns.Add(newSystem.Data.DataColumn("id",typeof(Int32)));
dt.Columns.Add(newSystem.Data.DataColumn("PkID",typeof(string)));
dt.Columns.Add(newSystem.Data.DataColumn("Title",typeof(string)));
for(inti=0;i<6;i++)
...{
dr=dt.NewRow();
dr=i;
dr="123456789123456789123456789";
dr="<ahref=http://dotnet.aspx.cc/>接待到临【孟宪会之出色天下】</a>";
dt.Rows.Add(dr);
}
System.Data.DataViewdv=newSystem.Data.DataView(dt);
returndv;
}
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(!IsPostBack)
...{
GridView1.BorderWidth=Unit.Pixel(2);
GridView1.BorderColor=System.Drawing.Color.DarkOrange;
GridView1.DataSource=CreateDataSource();
GridView1.DataBind();
}
}
protectedvoidButton1_Click(objectsender,System.EventArgse)
...{
Response.Clear();
Response.Buffer=true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
//假如设置为GetEncoding("GB2312");导出的文件将会呈现乱码!!!
Response.ContentEncoding=System.Text.Encoding.UTF7;
Response.ContentType="application/ms-excel";//设置输入文件范例为excel文件。
System.IO.StringWriteroStringWriter=newSystem.IO.StringWriter();
System.Web.UI.HtmlTextWriteroHtmlTextWriter=newSystem.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
publicoverridevoidVerifyRenderingInServerForm(Controlcontrol)
...{}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
...{
if(e.Row.RowType==DataControlRowType.DataRow)
...{
e.Row.Cells.Attributes.Add("style","vnd.ms-excel.numberformat:@;");
}
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>将GridView导出到Excel文件中</title>
</head>
<body>
<formid="form1"runat="server">
<asp:GridViewID="GridView1"runat="server"OnRowDataBound="GridView1_RowDataBound"
AutoGenerateColumns="false">
<Columns>
<asp:BoundFieldHeaderText="序号"DataField="id"/>
<asp:BoundFieldHeaderText="身份证号"DataField="PkID"/>
<asp:BoundFieldHeaderText="网址"DataField="Title"ReadOnly="true"HtmlEncode="false"/>
</Columns>
</asp:GridView>
<asp:LiteralID="HiddenOut"runat="server"/>
<asp:ButtonID="Button1"runat="server"Text="导出"OnClick="Button1_Click"/>
</form>
</body>
</html>
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
页:
[1]