您的位置:首页 > Web前端 > HTML

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

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

C#




<%...@ Page Language="C#" AutoEventWireup="true" %>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">






<script runat="server">...


// 计算数据,完全可以从数据看取得


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 void Page_Load( object sender, EventArgs e )




...{


if (!IsPostBack)




...{


GridView1.DataSource = CreateDataSource();


GridView1.DataBind();


}


}




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());


}


</script>




<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<title>得到ASP.NET生成的HTML</title>


</head>


<body>


<form id="Form1" runat="server">


<asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"


GridLines="Both" CellPadding="4" Width="560">


<HeaderStyle BackColor="#EDEDED" Height="26px" />


</asp:GridView>


</form>


</body>


</html>



VB.NET


<%@ Page Language="VB" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




<script runat="server">




Function CreateDataSource()Function CreateDataSource() As ICollection


Dim dt As System.Data.DataTable = New System.Data.DataTable


Dim dr As System.Data.DataRow


dt.Columns.Add(New System.Data.DataColumn("学生班级", GetType(System.String)))


dt.Columns.Add(New System.Data.DataColumn("学生姓名", GetType(System.String)))


dt.Columns.Add(New System.Data.DataColumn("语文", GetType(System.Decimal)))


dt.Columns.Add(New System.Data.DataColumn("数学", GetType(System.Decimal)))


dt.Columns.Add(New System.Data.DataColumn("英语", GetType(System.Decimal)))


dt.Columns.Add(New System.Data.DataColumn("计算机", GetType(System.Decimal)))


Dim i As Integer = 0


For i = 0 To 50 - 1


Dim rd As System.Random = 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)


Next


Dim dv As System.Data.DataView = New System.Data.DataView(dt)


Return dv


End Function






Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)


If Not IsPostBack Then


GridView1.DataSource = CreateDataSource()


GridView1.DataBind()


End If


End Sub






Protected Overloads Overrides Sub Render()Sub Render(ByVal writer As HtmlTextWriter)


Dim html As System.IO.StringWriter = New System.IO.StringWriter


Dim tw As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(html)


MyBase.Render(tw)


Dim sw As System.IO.StreamWriter


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)


End sub


</script>


<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<title>得到ASP.NET生成的HTML</title>


</head>


<body>


<form id="Form1" runat="server">


<asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"


GridLines="Both" CellPadding="4" Width="560">


<HeaderStyle BackColor="#EDEDED" Height="26px" />


</asp:GridView>


</form>


</body>


</html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: