• aspx 生成HTML 静态页[转帖]


     

     

    cs 页:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.IO;
    using System.Net;

    namespace WebHtml
    {
        public partial class _Default : System.Web.UI.Page
        {
             protected void Page_Load(object sender, EventArgs e)
            {

            }
            protected void Button1_Click(object sender, EventArgs e)
            {
                string strDate = DateTime.Now.ToString("yyMMdd") + "\\" + DateTime.Now.ToString("yyyymmddhhmmss");
                string strFileName = strDate + ".shtml";//
    存储到数据库中
                string strTitle=Request.Form["Title"].ToString().Trim();//
    接收传过来的标题
                string strContent=Request.Form["Content"].ToString().Trim();//
    接收传过来的内容
                string[] content = strContent.Split(new Char[] {'|'});//
    对内容进行拆分,并保存到数组
                int upbound = content.Length;//
    数组的上限
                //SqlServerDataBase db = new SqlServerDataBase();
               // bool success = db.Insert("insert into inNews(Title,Content,FilePath)values('" + strTitle + "','" + strContent + "','" + strFileName + "')", null);
                //if (success)
                   // Message.Text = "
    添加成功!";
                /**////////////////////////////
    创建当前日期的文件夹开始
                string dir = Server.MapPath("NewsFiles/"+DateTime.Now.ToString("yyMMdd"));//
    用来生成文件夹
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                /**////////////////////////////
    创建当前日期的文件夹结束
                try
                {
                for (int i = 0; i < content.Length; i++)
                {
                //string[] newContent = new string[4];//
    定义和html标记数目一致的数组
                StringBuilder strhtml = new StringBuilder();

                    //创建StreamReader对象
                using (StreamReader sr = new StreamReader(Server.MapPath("NewsFiles/") + "Template.htm", Encoding.GetEncoding("gb2312")))
                    {
                        String oneline;
                        //
    读取指定的HTML文件模板
                        while ((oneline = sr.ReadLine()) != null)
                        {
                            strhtml.Append(oneline);
                        }
                        sr.Close();
                    }

                //为标记数组赋值
                //SqlServerDataBase db = new SqlServerDataBase();
               // DataSet ds = db.Select("select top 1 NewsId from inNews order by NewsId desc", null);//
    获取id
                string strTable = "<table><tr><td>$upUrl</td><td>$Number< /td><td>$downUrl</td></tr></table>";//
    上下页表格,注 意此处的$upUrl(上一页),$Number(页码分页),$downUrl(下一页)
                //
    这三个是用来替换的。

                    string FilePath="";
                    strhtml = strhtml.Replace("$Title", strTitle);
                    //strhtml = strhtml.Replace("$NewsId", ds.Tables[0].Rows[0]["NewsId"].ToString());
                    strhtml = strhtml.Replace("$NewsId", "10");
                    strhtml = strhtml.Replace("$Time", DateTime.Now.ToString("yyyy/MM/dd"));
                    strhtml = strhtml.Replace("$Content", content[i]);
                    string strNumber = "";//
    数字分页123……
                    for (int m = 1; m <=upbound; m++)
                    {
                        if (m == 1)//
    如果是第一页就显示成这个样子:20070524.shtml而不是20070524_1.shtml
                            strNumber = strNumber + " ["+"<a href=" + "../" + strDate + ".shtml" + ">" + m + "</a>"+"] ";
                        else
                        {
                            int n = m - 1;//
    第三页的连接应该是20070524_2.shtml,以此类推
                            strNumber = strNumber + " [" +"<a href=" + "../" + strDate + "_" + n + ".shtml" + ">" +  m + "</a>"+"] ";
                        }
                    }
                        if (upbound == 0)//
    如果没有分页,就直接按日期时间保存
                        {
                            FilePath = Server.MapPath("NewsFiles") + "//" + strDate + ".shtml";
                            strhtml = strhtml.Replace("$Pager", "");
                        }
                        else//
    否则按20070524.shtml20070524_1.shtml 这种效果保存
                        {
                            if (i == 0)
                                FilePath = Server.MapPath("NewsFiles") + "//" + strDate + ".shtml";
                            else
                                FilePath = Server.MapPath("NewsFiles") + "//" + strDate + "_" + i + ".shtml";
                           
                            if (i == 0)//
    第一页不显示上一页
                                strTable = strTable.Replace("$upUrl", "");

                            if (i <= 1)//上一页分页
                                strTable = strTable.Replace("$upUrl", "<a href=" + "../" + strDate + ".shtml" + ">
    上一页</a>");
                            else
                            {
                                int p = i - 1;
                                strTable = strTable.Replace("$upUrl", "<a href=" + "../" + strDate + "_" + p + ".shtml" + ">
    上一页</a>");
                            }
                           
                            if(upbound==1)//
    如果只有一页,则不显示页码
                            //strNumber="";
                            strTable = strTable.Replace("$Number", "");
                            else
                            strTable = strTable.Replace("$Number", strNumber);//
    页码替换
                            /**/////////////////////////
                            if(i==upbound-1)//
    最后一页不显示下一页
                                strTable = strTable.Replace("$downUrl", "");

                            if (i != upbound - 1)//下一页分页
                            {
                                int q = i + 1;
                                strTable = strTable.Replace("$downUrl", "<a href=" + "../" + strDate + "_" + q + ".shtml" + ">
    下一页</a>");
                            }
                            else
                            {
                                int j = upbound - 1;
                                strTable = strTable.Replace("$downUrl", "<a href=" + "../" + strDate + "_" + j + ".shtml" + ">
    下一页</a>");
                            }

                            strhtml = strhtml.Replace("$Pager", strTable);
                        }
                    //
    创建文件信息对象--------------------------------------------
                    FileInfo finfo = new FileInfo(FilePath);
                    //
    以打开或者写入的形式创建文件流
                    using (FileStream fs = finfo.OpenWrite())
                    {
                        //
    根据上面创建的文件流创建写数据流
                        StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
                        //
    把新的内容写到创建的HTML页面中
                        sw.WriteLine(strhtml);
                        sw.Flush();
                        sw.Close();
                    }
                }
            }
            catch (Exception err)
            {
                //
    输出异常信息
                Response.Write(err.ToString());
            }
            }
        }
    }
    -------------------------------
    aspx

    <%@ Page AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="WebHtml._Default"
        Language="C#" ValidateRequest="false" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>
    无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:Label ID="Label2" runat="server" Text="
    标题"></asp:Label>
                <asp:TextBox ID="Title" runat="server" Width="325px"></asp:TextBox><br />
                <asp:Label ID="Label1" runat="server" Text="
    内容"></asp:Label>
                <asp:TextBox ID="Content" runat="server" Height="284px" TextMode="MultiLine" Width="324px"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                <asp:Label ID="Message" runat="server"></asp:Label></div>
        </form>
    </body>
    </html>
    模板页:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta content="zh-cn" http-equiv="Content-Language" />
        <meta content="text/html; charset=gb2312" http-equiv="Content-Type" />
        <title>$Title</title>
        <style type="text/css">a {text-decoration:none;}</style>
    </head>
    <body>
        <table style=" 100%">
            <tr>
                <td style="font-size: 14pt; text-align: center; font-weight: bold;">
                    <Caput>$Title</Caput>
                </td>
            </tr>
            <tr>
                <td style="text-align: right; font-size: 10pt;">
                    <Date>$Time</Date></td>
            </tr>
            <tr>
                <td style="vertical-align: top; font-size: 10pt; ">
                    <hr style="color: #DCE0E5; height: 1px;" />
                    <Content>$Content</Content></td>
            </tr>
            <tr>
                <td style="font-size: 10pt; text-align: center">
                    $Pager</td>
            </tr>
        </table>
    </body>
    </html>

     

     

    转自: http://www.cnblogs.com/ejiyuan/archive/2007/11/09/954325.html

  • 相关阅读:
    RAID实战案例
    文件系统常用工具实战篇
    挂载文件系统
    硬盘结构类型概述
    创建文件系统实战篇
    JumpServer的会话管理及命令过滤器应用案例
    JumpServer的权限管理
    JumpServer的用户管理
    helm基础
    hpa控制器
  • 原文地址:https://www.cnblogs.com/liangwei389/p/1169765.html
Copyright © 2020-2023  润新知