.net生成静态页面并生成分页代码

int num = 0;
      
        string sql = "insert into news(title,content,bigclassname,[user],infotime,hits,upfile) values(@title,@content,@ddl,@name,@time,@num,@filename)";
        oledbparameter[] para = new oledbparameter[] {
        new oledbparameter("@title",txttitle.text),
           
              new oledbparameter("@content",fckeditor1.value),
              new oledbparameter("@ddl",ddllei.selecteditem.value),
              new oledbparameter("@name",txtname.text),
              new oledbparameter("@time",txttime.text),
              new oledbparameter("@num",num),
              new oledbparameter("@filename",filename)
        };
        db.executecommand(sql, para);
        string mbpath = server.mappath("../template/news.html");
        encoding code = encoding.getencoding("gb2312");
        streamreader sr = null;
        streamwriter sw = null;
        string str = null;

        //读取
        try
        {
            sr = new streamreader(mbpath, code);
            str = sr.readtoend();

        }
        catch (exception ex)
        {
            throw ex;
        }
        finally
        {
            sr.close();
        }
        string strmax = "select id from news order by id desc";
        int newsid = convert.toint32(db.readout2(strmax))+1;
        //根据时间自动重命名,扩展名也可以自行修改
        string filename = "news_" + newsid + ".shtml";

        str = str.replace("#title#", txttitle.text);
        str = str.replace("#infotime#", txttime.text);
        str = str.replace("#content#", fckeditor1.value);
        //生成静态文件
        try
        {
            sw = new streamwriter(server.mappath("http://www.cnblogs.com/") + filename, false, code);
            sw.write(str);
            sw.flush();

fenye();

        }
        catch (exception ex)
        {
            throw ex;
        }
        finally
        {
            sw.close();
          
        }
        response.write("<script language=网页特效>alert('添加成功!');location.href='newsmanage.asp教程x';</script>");

//分页

public void fenye()

{

 string str = "select * from news order by id desc";
        datatable tb = db.mydataadapter(str);
        datarow dr;

        //最后一页是否整页
        int m = 0;
        //页数
        int pg = 0;
        if (tb.rows.count % 10 == 0)
        {
            pg = tb.rows.count / 10;
        }
        else
        {
            pg = convert.toint32(tb.rows.count / 10) + 1;
            m = 1;
        }

        //分页
        string pglist = "";
        for (int i = 1; i <= pg; i++)
        {
            pglist += " <a href="" + i + ".html">" + i + "</a>";
        }
        pglist = "<div >共"+pg+"页&nbsp;<a href="1.html">首页</a>" + pglist + "<a href="" + pg + ".html">&nbsp;尾页</a></div> ";

        for (int j = 1; j <= pg; j++)
        {
            //建立一个stringbuilder对象
            stringbuilder sb = new stringbuilder();

            //读取模板
            using (streamreader sr = new streamreader(server.mappath("../template/index.html"), system.text.encoding.default, true))
            {

                //将模板写入streambuilder
                sb.append(sr.readtoend().tostring());
            }

            //删除原有文件
           // file.delete("../....//news/" + j.tostring() + ".html");

            string title = "";
            string ublist = "";
            string infotime = "";
            string id = "";
            if (m == 1 && j == pg)//不是整页
            {
                //for (int i = 1 + 10 * (j - 1); i <= (tb.rows.count - 10 * (pg - 1)); i++)
                for (int i = 1 + 10 * (j - 1); i <= (tb.rows.count); i++)
                {
                    dr = tb.rows[i - 1];
                    title = dr["title"].tostring();
                    id = dr["id"].tostring();
                    infotime = dr["infotime"].tostring();
                    ublist += "<table border="0" cellpadding="0" cellspacing="0" style="width:610px; line-height:10px" >";
                    ublist += " <tr ><td align="left"> "+i+"<a href="news/news_" + id + ".shtml">→" + title + "</a> </td><td align="right" >" + infotime + "</td></tr></table>";
                  
                }
            }
            else//是整页
            {
                for (int i = 1 + 10 * (j - 1); i <= 10 * j; i++)
                {
                    dr = tb.rows[i - 1];
                    id = dr["id"].tostring();
                    title = dr["title"].tostring().replace(" ", "");
                    infotime = dr["infotime"].tostring().replace(" ", "");
                    ublist += "<table border="0" cellpadding="0" cellspacing="0" style="width:610px; line-height:25px" >";
                    ublist += " <tr ><td align="left"> " + i + "<a href="news/news_" + id + ".shtml">→" + title + "</a> </td><td align="right" >" + infotime + "</td></tr></table> ";
                }
            }

            //替换模板中的内容...

            sb.replace("$title$", ublist);
                     //替换分页
            sb.replace("$pglist$", pglist);

            using (streamwriter sw = new streamwriter(server.mappath("http://www.cnblogs.com/news/" + j.tostring() + ".html"), false, system.text.encoding.default, 100))
            {

                //写出.html文件
                sw.writeline(sb);

                sw.flush();

                sw.close();
            }

        }

}

一键生成静态页面

protected void btnhtml_click(object sender, eventargs e)
    {
        string sql = "select * from news order by id desc";
        datatable dt = db.mydataadapter(sql);
        if (dt.rows.count > 0)
        {
            for (int i = 0; i < dt.rows.count; i++)
            {
                string mbpath = server.mappath("../template/news.html");
                encoding code = encoding.getencoding("gb2312");
                streamreader sr = null;
                streamwriter sw = null;
                string str = null;

                //读取
                try
                {
                    sr = new streamreader(mbpath, code);
                    str = sr.readtoend();

                }
                catch (exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sr.close();
                }
              
                //根据时间自动重命名,扩展名也可以自行修改
                string filename = "news_" + dt.rows[i]["id"].tostring() + ".shtml";
              
                str = str.replace("#title#", dt.rows[i]["title"].tostring());
                str = str.replace("#infotime#", dt.rows[i]["infotime"].tostring());
                str = str.replace("#content#", dt.rows[i]["content"].tostring());
                //生成静态文件
                try
                {
                    sw = new streamwriter(server.mappath("http://www.cnblogs.com/" + "news" + "/") + filename, false, code);
                    sw.write(str);
                    sw.flush();
                    this.page.clientscript.registerstartups教程cript(gettype(), "", "<script>alert('生成成功!')</script>");

                }
                catch (exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sw.close();
                  
                }
            }

        }
        else
        {
            this.page.clientscript.registerstartupscript(gettype(), "", "<script>alert('暂无数据')</script>");
        }
    }

时间: 2024-11-06 11:25:08

.net生成静态页面并生成分页代码的相关文章

.NET新闻发布生成静态页面并实现分页

.NET新闻发布生成静态页面并实现分页 1.静态模板页面 template.html,主要是定义了一些特殊字符,用来被替换. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type

.net生成静态页面原理与代码

一种是直接访问动态页面地址,将其生成的html代码保存成静态页面.另一种是通过读取页面模板,对其中需要替换的内容进行替换的方式进行生成.其中前一种方法简单,对于生成单个页面或少量页面比较实用,而对大量的页面且页面之间彼此关联复杂的,第一种就不太方便.对于使用模板的方法稍微复杂,这里不详细讨论,只给出第一种方法应对不太复杂的项目的应用. 给定生成静态页面入口页面地址,比如index.asp教程x,通过查找其中以href=开始的链接的页面地址,对其按一定规则进行替换后,生成静态化之后的index.h

PHP生成静态页面的方法

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法.页面静态化的方法,分为两种,一种是伪静态,就是url 重写,一种是你真的静态化.下面介绍PHP中页面静态化的方法. 什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

Asp.net生成静态页面并分页

asp教程.net生成静态页面并分页 <!doctype html public "-//w3c//dtd html 4.01 transitional//en""http://www.w3.org/tr/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <meta http-equiv="conte

php 生成静态页面的办法与实现代码详细版_php实例

php中主要用到的就是要用到fread()和fwirte().而静态页面生成了之后,就会牵扯到修改的问题.这里可以用到正则匹配的方法来替换模版中改变的部位.不过此种方法太麻烦,值得推荐的方法是直接把原来生成的模版砍掉,重新生成,呵呵,真正的一了百了. 还需要说明的一点就是,这种生成静态页面的方法一般都用于那些变化不是很频繁的页面,比如信息的最终页面.而针对列表页,如果信息更新不是很频繁的话,也是可取的.现在网上流行好多可以生成静态页面的blog或者论坛程序,都是通过手动点击后台"生成html页&

ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容.首先制作一个模板页,暂时命名为template.htm,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

Java 项目生成静态页面的代码_JSP编程

不外乎有以下因素: 1.从页面加载时间来看:静态页面不需要与数据库建立连接,尤其是访问数据量较大的页面,这种页面大多要查很多结果集,因此建立连接次数就增多了,时间不可观,而静态页面则省去了这些时间. 2.从便于搜索引擎抓取的角度来讲:搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高,一些大门户站页面大多都采用静态或伪静态网页来显示,更便于搜索引擎抓取与排名. 3.从安全性来看:静态网页不宜遭到黑客攻击,因为黑客不知道你的网站的后台.网

php 利用数据库信息生成静态页面实例代码

 代码如下 复制代码 $con=mysql教程_connect("localhost","root","")or die("链接错误!!!"); mysql_select_db("message",$con)or die("数据库链接错误!!!"); mysql_query("set names 'gbk'"); $sql=mysql_query("sele