zoukankan      html  css  js  c++  java
  • ASP.NET生成静态页

    ASP.NET生成静态页
    
    核心技术:
    HTMLPage文件夹,ModelHTML.htm文件中的ArticleTitle,ArticleContent都是要替换的区域
    WriteFile(dr["ArticleTitle"].ToString(), dr["ArticleContent"].ToString(), dr["ID"].ToString());
    
    
    1.前台
    <head runat="server">
        <title>ASP.NET生成静态网页</title>
    </head>
    <body style="text-align: center">
        <form id="form1" runat="server">
        <div style="text-align: center">
            <table style=" 601px" cellpadding="0" cellspacing="0">
                <tr>
                    <td colspan="3" style="height: 85px; text-align: center;"><strong>ASP.NET生成静态网页</strong></td>
                </tr>
                <tr>
                    <td colspan="3" rowspan="2" style="vertical-align: top; height: 67px; text-align: center">
                        <asp:DataList ID="DataList1" runat="server" BackColor="White" BorderColor="#E7E7FF"
                            BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" OnItemCommand="DataList1_ItemCommand">
                            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                            <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                            <ItemTemplate>
                                <table cellpadding="0" cellspacing="0" style="font-size: 9pt;  563px">
                                    <tr>
                                        <td style=" 30px; height: 17px">ID:</td>
                                        <td style=" 60px; height: 17px"><%#DataBinder.Eval(Container.DataItem,"ID") %></td>
                                        <td style=" 50px; height: 17px">主题:</td>
                                        <td colspan="3" style=" 354px; height: 17px; text-align: left;">
                                        <%# DataBinder.Eval(Container.DataItem,"ArticleTitle") %>
                                        </td>
                                        <td colspan="1" style=" 70px; height: 17px">
                                            <asp:LinkButton ID="lnkbtnCreateHTML" runat="server" Font-Size="9pt" ForeColor="Red">生成静态页</asp:LinkButton></td>
                                    </tr>
                                </table>
                            </ItemTemplate>
                            <AlternatingItemStyle BackColor="#F7F7F7" />
                            <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                        </asp:DataList></td>
                </tr>
                <tr>
                    <td colspan="3" rowspan="1"><strong>查看生成页</strong></td>
                </tr>
                <tr>
                 <td colspan="3" rowspan="1"><asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple" Width="230px"></asp:ListBox></td>
                </tr>
                <tr>
                    <td colspan="3" rowspan="1" style="vertical-align: top; height: 24px; text-align: center">
                        <asp:Button ID="btnView" runat="server" Font-Size="9pt" OnClick="btnView_Click" Text="查看页面" />
                        <asp:Button ID="btnDelete" runat="server" Font-Size="9pt" OnClick="btnDelete_Click"
                            Text="删除页面" /></td>
                </tr>
            </table>
        
        </div>
        </form>
    </body>
    2.后台
    using System.Data.SqlClient;  //添加引用
    using System.Text;
    using System.IO;
    using System.Collections;
    
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string ConStr = "Server=(local);DataBase=db_17;Uid=sa;Pwd=";
                string cmdtxt = "SELECT * FROM tb_13";
                SqlConnection Con = new SqlConnection(ConStr);
                Con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmdtxt, Con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                this.DataList1.DataSource = ds;
                this.DataList1.DataKeyField = "ID";
                this.DataList1.DataBind();
                //将文件绑定到 ListBox中
                ArrayList arylst = new ArrayList();
                string filepath = Server.MapPath("HTMLPage");
                DirectoryInfo info = new DirectoryInfo(filepath);
                FileInfo[] fileinfo = info.GetFiles();
                foreach (FileInfo allfile in fileinfo)
                {
                    arylst.Add(allfile);
                }
                this.ListBox1.DataSource = arylst;
                this.ListBox1.DataBind();
            }
        }
    
        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            string ConStr = "Server=(local);DataBase=db_17;Uid=sa;Pwd=";
            string cmdtxt = "SELECT * FROM tb_13 WHERE ID="+this.DataList1.DataKeys[e.Item.ItemIndex].ToString()+"";
            SqlConnection Con = new SqlConnection(ConStr);
            Con.Open();
            SqlCommand Com = new SqlCommand(cmdtxt,Con);
            SqlDataReader dr = Com.ExecuteReader();
            dr.Read();
            if(dr.HasRows)
            {
                WriteFile(dr["ArticleTitle"].ToString(), dr["ArticleContent"].ToString(), dr["ID"].ToString());
                Response.Write("<script>alert('静态页生成成功!');location='Default.aspx'</script>");
            }
            dr.Close();
        }
    
        public bool WriteFile(string ArticleTitle, string ArticleContent, string ArticleID)
        {
            string OutPutPath = HttpContext.Current.Server.MapPath("HTMLPage/");
            Encoding encoding = Encoding.GetEncoding("gb2312");
            // 读取模板文件
            string ModelTemp = HttpContext.Current.Server.MapPath("ModelHTML.htm");
            StreamReader sr = null;
            StreamWriter sw = null;
            string str = "";
            try
            {
                sr = new StreamReader(ModelTemp, encoding);
                str = sr.ReadToEnd(); // 读取文件
            }
            catch (Exception exp)
            {
                HttpContext.Current.Response.Write(exp.Message);
                HttpContext.Current.Response.End();
                sr.Close();
            }
    
    
            string HtmlFilename = DateTime.Now.ToString("yyyyMMddHHmmss_") +ArticleID+ ".html";
            // 替换内容
            str = str.Replace("PageTitle", ArticleTitle); //模板页中的PageArticle
            str = str.Replace("ArticleTitle", ArticleTitle);
            str = str.Replace("ArticleContent", ArticleContent);
            // 写文件
            try
            {
                sw = new StreamWriter(OutPutPath+HtmlFilename, false, encoding);
                sw.Write(str);
                sw.Flush();
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
            }
            finally
            {
                sw.Close();
            }
            return true;
        }
        protected void btnView_Click(object sender, EventArgs e)
        {
            Response.Redirect("HTMLPage/" + this.ListBox1.SelectedValue);
        }
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            string filepath = Server.MapPath("HTMLPage/");
            File.Delete(filepath + this.ListBox1.SelectedValue);
            Response.Write("<script>alert('页面删除成功!');location='Default.aspx'</script>");
        }
    }
    
    3.ModelHTML.htm(静态页面模版)
    <head>
        <META http-equiv=Content-Type content="text/html; charset=gb2312">
        <title>PageTitle</title>
    </head>
    <body style="text-align: center">
        <table style=" 700px; height: 601px">
            <tr>
                <td colspan="3" style="height: 106px" bgcolor="#00cc33">
                    <span style="font-size: 16pt; color: #3333ff"><strong>广告区</strong></span></td>
            </tr>
            <tr>
                <td bgcolor="#00cc33" style=" 177px; height: 146px">
                </td>
                <td colspan="2" rowspan="3" style="margin-top: 0px; vertical-align: top; padding-top: 0px">
                    <table style=" 502px">
                        <tr>
                            <td colspan="3" style="height: 55px">
                            </td>
                        </tr>
                        <tr>
                            <td colspan="3" rowspan="2">
                                <strong>ArticleTitle </strong>
                            </td>
                        </tr>
                        <tr>
                        </tr>
                        <tr>
                            <td colspan="3" rowspan="1" style="text-align: left; font-size: 9pt;">ArticleContent</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    
    </body>
    </html>
    

      


  • 相关阅读:
    mac creact-react-app 时包 gyp-error
    JAVA,JDBC报错Access denied for user '"root"'@'localhost
    JAVA,JDBC连接数据库报错:No suitable driver found for "jdbc:mysql://localhost:3306
    JAVA,反射使用demo,通过读取配置文件创建类,调用方法
    JAVA,反射获取class对象的3种方式
    python获取当前时间距离指定时间相差的秒值
    JAVA,字节流文件读写
    JAVA,反射常用方法
    JAVA,字符流读写,flush和close的区别
    JAVA,字符流文件读写
  • 原文地址:https://www.cnblogs.com/waters/p/2152615.html
Copyright © 2011-2022 走看看