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

你可能感兴趣的:(在ASP.NET 2.0中直接得到本页面生成的HTML代码)