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

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

你可能感兴趣的:(html,server,C#,asp.net,asp,VB.NET)