在ASP.NET 2.0中直接得到本页面生成的HTML代码(转自孟宪会之精彩世界)

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

 

 1 <% @ Page Language = " C# "  AutoEventWireup = " true "   %>
 2
 3 <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "
 4   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 5
 6 < script runat = " server " >
 7    //  计算数据,完全可以从数据看取得
 8   ICollection CreateDataSource( )
 9    {
10    System.Data.DataTable dt = new System.Data.DataTable();
11    System.Data.DataRow dr;
12    dt.Columns.Add(new System.Data.DataColumn("学生班级"typeof(System.String)));
13    dt.Columns.Add(new System.Data.DataColumn("学生姓名"typeof(System.String)));
14    dt.Columns.Add(new System.Data.DataColumn("语文"typeof(System.Decimal)));
15    dt.Columns.Add(new System.Data.DataColumn("数学"typeof(System.Decimal)));
16    dt.Columns.Add(new System.Data.DataColumn("英语"typeof(System.Decimal)));
17    dt.Columns.Add(new System.Data.DataColumn("计算机"typeof(System.Decimal)));
18
19    for (int i = 0 ; i < 50 ; i++)
20    {
21      System.Random rd = new System.Random(Environment.TickCount * i); ;
22      dr = dt.NewRow();
23      dr[0= "班级" + i.ToString();
24      dr[1= "【孟子E章】" + i.ToString();
25      dr[2= System.Math.Round(rd.NextDouble() * 1002);
26      dr[3= System.Math.Round(rd.NextDouble() * 1002);
27      dr[4= System.Math.Round(rd.NextDouble() * 1002);
28      dr[5= System.Math.Round(rd.NextDouble() * 1002);
29      dt.Rows.Add(dr);
30    }

31    System.Data.DataView dv = new System.Data.DataView(dt);
32    return dv;
33  }

34
35    protected   void  Page_Load(  object  sender, EventArgs e )
36    {
37    if (!IsPostBack)
38    {
39      GridView1.DataSource = CreateDataSource();
40      GridView1.DataBind();
41    }

42  }

43
44    protected   override   void  Render( HtmlTextWriter writer )
45    {
46    System.IO.StringWriter html = new System.IO.StringWriter();
47    System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
48    base.Render(tw);
49    System.IO.StreamWriter sw;
50    sw = new System.IO.StreamWriter(Server.MapPath("a.htm"), false, System.Text.Encoding.Default);
51    sw.Write(html.ToString());
52    sw.Close();
53    tw.Close();
54    Response.Write(html.ToString());
55  }
  
56 </ script >
57
58 < html xmlns = " http://www.w3.org/1999/xhtml " >
59 < head >
60    < title > 得到ASP.NET生成的HTML </ title >
61 </ head >
62 < body >
63    < form id = " Form1 "  runat = " server " >
64      < asp:GridView ID = " GridView1 "  runat = " server "  Font - Size = " 12px "  BackColor = " #FFFFFF "
65       GridLines = " Both "  CellPadding = " 4 "  Width = " 560 " >
66        < HeaderStyle BackColor = " #EDEDED "  Height = " 26px "   />
67      </ asp:GridView >
68    </ form >
69 </ body >
70 </ html >
71

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