在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() * 100, 2);
26
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
27
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
28
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
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
<%@ 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() * 100, 2);26
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);27
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);28
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);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
浙公网安备 33010602011771号