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

转载 2007年09月17日 14:54:00

在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() * 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());
  }  
</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 * 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)
    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 


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1332065

 

vs2010 asp.net webForm Html表格数据模板转换pdf文件,web打印Pdf

htmlTable数据表模板 转换pdf 用到itextsharp5.4.0 自定义函数 算术运算符,关系运算符,以及逻辑运算符 预定义函数getRMB(double num)getRMBs(stri...
  • luan729
  • luan729
  • 2016年07月04日 10:09
  • 2019

ASP.NET C#根据HTML页面导出PDF

在启明星采购系统里,新增了导出PDF功能。整个功能使用了第三方软件 wkhtmltopdf(下载) 官网 https://wkhtmltopdf.org/ 提供有更多版本下载 他可以把HTML页...
  • hbqjzx
  • hbqjzx
  • 2017年12月18日 14:56
  • 80

js动态生成html表格

刚在论坛上面逛的时候看到有人问html表格怎么动态生成,我回了一下发现有好多小伙伴追问- - 看来还是有很多人不会的啊,于是决定写个博来解救万千小伙伴于水火之中(mdzz)首先我们要在html里面...
  • ZTZY520
  • ZTZY520
  • 2017年01月03日 20:15
  • 1750

ASP生成静态Html文件技术

现在网站网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度.  像www.aspid...
  • chinajobs
  • chinajobs
  • 2016年05月13日 10:23
  • 661

ASP.NET中生成PDF文件

这是看了一下的文章而进行的一个总结,因为最近也在想如何通过程序来生成PDF文件。 Generating PDF files Reponse有个这样的属性ContentType,获取或设置输出流的...
  • zhaowei705523962
  • zhaowei705523962
  • 2013年01月22日 19:27
  • 2370

html5 实现网页截屏 页面生成图片(图文)

html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。 因为每个浏览器渲染页面的方式都不尽相同,所以生成的图片也不太一样。 环...
  • doulinxu
  • doulinxu
  • 2017年02月27日 16:37
  • 524

ASP.NET中在HTML中嵌入C#代码的方法

一.使用在HTML中嵌入C#代码 打开ASPX页面Default.aspx,首先在 之间添加标题“使用%HTML中嵌入C#“,再在其中的 标签中间输入以下代码: title>使用%HTML...
  • gscaiyucheng
  • gscaiyucheng
  • 2013年12月05日 09:31
  • 7120

ASP.NET中在后台用C#,往前台插入HTML代码

比如我有个tempString,里面存放了一些HTML代码,比如一个Panel以及其中所包含的一些控件。 我想在前台某个事件触发后,在后台调用一个方法往前台的某个位置(比如一个div(id="temp...
  • linshichen
  • linshichen
  • 2016年04月11日 11:55
  • 946

ASP.Net: EshineASPNet教程-自动生成代码模块

完整教程链接:ASP.Net: EshineASPNet-基于ASP.Net敏捷开发开源框架本教程介绍一套自主开发的项目实现自动生成代码,以及使用codesmith自动生成代码。首先要讲的是在一个项目...
  • lyx_zhl
  • lyx_zhl
  • 2017年01月12日 14:54
  • 563

ASP.NET 2.0中的Web和HTML服务器控件

除了代码和标记之外,ASP.NET 2.0页面还可以包含服务器控件,它们是可编程的服务器端对象,典型情况下表现为页面中的UI元素(例如文本框或图像)。服务器控件参与页面的执行过程,并给客户端生成自已的...
  • u011877729
  • u011877729
  • 2013年08月30日 19:49
  • 258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在ASP.NET 2.0中直接得到本页面生成的HTML代码
举报原因:
原因补充:

(最多只允许输入30个字)