在ASP.NET 2.0中直接得到本页面生成的HTML代码

在ASP.NET 2.0中,有时候需要对ASP.NET生成的HTML代码进行处理,或者是保存成静态文件。ASP.NET 提供了直接将请求保存成文件的方法:HttpRequest.SaveAs方法。下面这个方法就是在ASP.NET 2.0中得到ASP.NET生成的HTML代码,同时,生成一个静态文件的方法。

Html

 

代码
   
     
<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %>

<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >

< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > 得到ASP.NET生成的HTML </ title >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
< asp:GridView ID = " GridView1 " runat = " server " Font - Size = " 12px " BackColor = " #FFFFFF "
GridLines
= " Both " CellPadding = " 4 " Width = " 560 " >
< HeaderStyle BackColor = " #EDEDED " Height = " 26px " />
</ asp:GridView >

</ div >
</ form >
</ body >
</ html >

 

 

后面部分代码

 

代码
   
     
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;


public partial class _Default : System.Web.UI.Page
{
ICollection CreateDataSource()
{
System.Data.DataTable dt
= new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(
new System.Data.DataColumn( " 学生班级 " , typeof (System.String)));
dt.Columns.Add(
new System.Data.DataColumn( " 学生姓名 " , typeof (System.String)));
dt.Columns.Add(
new System.Data.DataColumn( " 语文 " , typeof (System.Decimal)));
dt.Columns.Add(
new System.Data.DataColumn( " 数学 " , typeof (System.Decimal)));
dt.Columns.Add(
new System.Data.DataColumn( " 英语 " , typeof (System.Decimal)));
dt.Columns.Add(
new System.Data.DataColumn( " 计算机 " , typeof (System.Decimal)));

for ( int i = 0 ; i < 50 ; i ++ )
{
System.Random rd
= new System.Random(Environment.TickCount * i);
dr
= dt.NewRow();
dr[
0 ] = " 班级 " + i.ToString();
dr[
1 ] = " 【孟子E章】 " + i.ToString();
dr[
2 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
dr[
3 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
dr[
4 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
dr[
5 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
dt.Rows.Add(dr);
}
System.Data.DataView dv
= new System.Data.DataView(dt);
return dv;
}

protected override void Render(HtmlTextWriter writer)
{
System.IO.StringWriter html
= new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw
= new System.Web.UI.HtmlTextWriter(html);
base .Render(tw);
System.IO.StreamWriter sw;
sw
= new System.IO.StreamWriter(Server.MapPath( " a.htm " ), false , System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
// Response.Write(html.ToString());
Response.Redirect( " a.htm " );


}


protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
GridView1.DataSource
= CreateDataSource();
GridView1.DataBind();
}

}
}

这样可以动态生成a.htm页面

试了一下,不错生成……可以试试,

 

但感觉这种方法不是很好,不是想要的那种

你可能感兴趣的:(asp.net)