在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
 posted on 2007-04-24 10:02  !@SJ$s  阅读(391)  评论(1编辑  收藏  举报