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

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

<% @ Page Language="C#" AutoEventWireup="true" CodeFile="right.aspx.cs" Inherits="right"  %>

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div  style ="height:1000px; width:100%;" >
    
< asp:GridView  ID ="GridView1"  runat ="server"  Font-Size ="12px"  BackColor ="#FFFFFF"
      GridLines
="Both"  CellPadding ="4"  Width ="560" >
      
< HeaderStyle  BackColor ="#EDEDED"  Height ="26px"   />
    
</ asp:GridView >

    
</ div >
    
    
</ form >
</ body >
</ html >

//  计算数据,完全可以从数据看取得
    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() * 1002);
            dr[
3= System.Math.Round(rd.NextDouble() * 1002);
            dr[
4= System.Math.Round(rd.NextDouble() * 1002);
            dr[
5= System.Math.Round(rd.NextDouble() * 1002);
            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());
    }
  

你可能感兴趣的:(asp.net)