zoukankan      html  css  js  c++  java
  • asp.net静态生成

    今天看了看asp.net静态生成的视频http://v.youku.com/v_show/id_XMjI3NDk5MzQw.html

      决定自己打出来留着以后用首先、建一个Default.aspx 

    Default.aspx 页面

            <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><table><tr><td>编号</td><td>名称</td><td></td></tr></HeaderTemplate>
            <ItemTemplate><tr><td><%#Eval("id") %></td><td><%#Eval("name") %></td><td>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("id","~/html/{0}.html")%>'>查看详细</asp:HyperLink></td></tr></ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:Repeater>
            <asp:Button ID="Button1" runat="server" Text="生成静态页面" onclick="Button1_Click" />

      

    Default.aspx.cs页面

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.OleDb;
    using System.IO;                                //File空间引用


    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind();
            }
        }
        /// <summary>
        /// 绑定数据库
        /// </summary>
        public void Bind()
        {
            string conn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/database.mdb");
            OleDbConnection con = new OleDbConnection(conn);

            string str = "select * from news";

            OleDbCommand com = new OleDbCommand(str, con);
            DataSet ds = new DataSet();

            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter(com);
            da.Fill(ds);
            con.Close();
            //绑定到Repeater上
            Repeater1.DataSource = ds;
            Repeater1.DataBind();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //<!--链接字符串
            string conn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/database.mdb");
            OleDbConnection con = new OleDbConnection(conn);
            string tr = "select * from news";

            OleDbCommand com = new OleDbCommand(tr, con);
            DataSet ds = new DataSet();

            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter(com);
            da.Fill(ds);
            con.Close();
            //-->

            string path =Server.MapPath("~/html/");                        //带读取html模版的路径
            string temp = File.ReadAllText(path + "HTMLPage.htm",System.Text.Encoding.UTF8);          //读取模版文件所有内容,和编码

            foreach (DataRow dr in ds.Tables[0].Rows)                       //循环读取ds的内容
            {
                string content = temp.Replace("$name$", dr["name"].ToString()); //替换模板页内容  content现在存的是html代码
                content = content.Replace("$time$", dr["time"].ToString());
                content = content.Replace("$body$", dr["body"].ToString());
                File.WriteAllText(path + dr["id"] + ".html", content, System.Text.Encoding.UTF8);   //在制定位置创建文件,内容,编码
            }
        }
    }

    HTMLPage.htm  html模板页

    <html>
    <head runat="server">
        <title>无标题</title>
    </head>
    <body>
    <form>
    <!--这是静态模板-->
    <div>标题:$name$
    <br />
        时间:$time$<br />
        <hr />
        $body$
    </div>
    </form>
    </body>
    </html>

    OK   点击生成静态页面按钮、、就可以看到了、、具体样式 具体添加

    带Repeater   aspx页

     <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><table><tr><td>编号</td><td>名称</td><td></td></tr></HeaderTemplate>
            <ItemTemplate><tr><td><%#Eval("id") %></td><td><%#Eval("name") %></td><td>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("id","~/html/{0}.html")%>'>查看详细</asp:HyperLink></td></tr></ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
    </asp:Repeater>

    点击生成按钮

        protected void Button2_Click(object sender, EventArgs e)
        {
            //<!--链接字符串
            string conn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/database.mdb");
            OleDbConnection con = new OleDbConnection(conn);
            string tr = "select * from news";

            OleDbCommand com = new OleDbCommand(tr, con);
            DataSet ds = new DataSet();

            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter(com);
            da.Fill(ds);
            con.Close();
            //-->
            string path = Server.MapPath("~/html/");                        //带读取html模版的路径
            string temp = File.ReadAllText(path + "HTMLPage2.htm", System.Text.Encoding.UTF8);          //读取模版文件所有内容,和编码
            string body = "<table><tr><td>编号</td><td>名称</td><td></td></tr>";
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                body += "<tr><td>"
                + dr["id"] + "</td><td>"
                + dr["name"] + "</td><td><a href='../html/"
                + dr["id"] + ".html'>查看详细</a></td></tr>";           
            }
            body+="</table>";
            string cont = temp.Replace("$body$", body);
            File.WriteAllText(path + "Def.html", cont, System.Text.Encoding.UTF8);
        }
    }

    htm模板


    <html>
    <head>
        <title></title>
    </head>
    <body>
    $body$
    </body>
    </html>

  • 相关阅读:
    BZOJ 2818 Gcd 线性欧拉筛(Eratosthenes银幕)
    simlescalar CPU模拟器源代码分析
    基于webRTC技术 音频和视频,IM解
    SVM明确的解释1__ 线性可分问题
    Atititjs javascript异常处理机制java异常转换.js exception process
    hibernate annotation 相关主键生成策略
    切向量,普通矢量,渐变
    C++动态数组简单的模拟二元堆
    [Angular] Create a custom validator for reactive forms in Angular
    [RxJS] Marbles Testings
  • 原文地址:https://www.cnblogs.com/taikongbai/p/2580106.html
Copyright © 2011-2022 走看看