论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

asp.net静态页面生成实例

文章类别:Asp.net | 发表日期:2011-4-22 9:31:26

网页生成静态页面后对服务器的压力也打打减小,我们这里介绍一个asp.net静态页面生成的实例。目前网页html静态化是利用其它的动态技术生成html静态页面,还不是静态网站。因为的确是这样的,生成html静态网页有一定的好处。
     一、加快页面打开浏览速度,静态页面无需连接数据库教程打开速度较动态页面有明显提高;
     二、有利于搜索引擎优化seo教程,baidu、google都会优先收录静态页面,不仅被收录的快还收录的全;
     三、减轻服务器负担,浏览网页无需调用系统数据库;
     四、网站更安全,html页面不会受asp相关漏洞的影响;
     观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。数据库出错时,不影响网站正常访问。
     生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
//生成静态页

        protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e)

        {

            string n_id = this.gridview1.datakeys[e.rowindex]["nid"].tostring();

            sqlconnection conn = new sqlconnection("server=.;uid=sa;pwd=;database=dress");

            sqlcommand cmd = new sqlcommand("select nid,n_title,n_content,n_pic,n_date from p_news where nid="+n_id,conn);

            conn.open();

            sqldatareader dr = cmd.executereader();

    

            //获取新闻发布的时间

            string date = "";

            if(dr.read())

            {

                date = convert.todatetime(dr["n_date"]).tostring("yyyymmddhhmmss_");

                //调用静态生成的方法

                transferstatic(dr["n_title"].tostring(), dr["n_content"].tostring(), dr["n_pic"].tostring(), date, n_id);

                response.write("<script>alert('www.3ppt.com静态页面生成成功!');location='bulidstaticpage.aspx'</script>");

            }

        }
 

    //转换静态方法

        public bool transferstatic(string title,string content,string pic,string date,string nid)

        {

            //输出路径

            string outpath = server.mappath("~/newdetails");

            //简体中文

            encoding encoding = encoding.getencoding("gb2312");

            //读取模版文件

            string htmlmodel = server.mappath("~/htmlmodel/newdetail.html");

            streamreader sr = null;

            streamwriter sw = null;

            string str = "";//保存内容的字符串

            try

            {

                sr=new streamreader(htmlmodel,encoding);

                str=sr.readtoend();//从头读到尾

            }

            catch(exception e)

            {

                response.write(e.message);

                response.end();

                sr.close();

            }

     
    //删除指定的页面

        protected void button2_click(object sender, eventargs e)

        {

            string path = server.mappath("~/newdetails");

            file.delete(path + "//" + this.listbox1.selectedvalue);

            //page.clientscript.registerclientscriptblock(this.gettype(), "信息处理", "<script>alert('删除成功!');location='bulidstaticpage.aspx'< /script>");

            page.clientscript.registerstartups教程cript(this.gettype(), "信息处理", "<script>alert('删除成功!');location='bulidstaticpage.aspx'< /script>");

        }

          

    生成静态页列表 

  
    //得到静态页面的路径

        public string htmlpath(datetime date,string nid)

        {

            string path = "newdetails/" + date.tostring("yyyymmddhhmmss_") + nid + ".html";

            return path;

    }

        //生成静态列表

        protected void button1_click(object sender, eventargs e)

        {

            sqlconnection conn = new sqlconnection("server=.;uid=sa;pwd=;database=dress");

            sqldataadapter da = new sqldataadapter("select nid,n_title,n_content,n_pic,n_date from p_news",conn);

            dataset ds = new dataset();

            da.fill(ds);

            string str = "";

            for (int i = 0; i < ds.tables[0].rows.count;i++)

            {

     //取时间

                string date = convert.todatetime(ds.tables[0].rows[i]["n_date"]).tostring("yyyymmddhhmmss_");

                //取编号

                string nid = ds.tables[0].rows[i]["nid"].tostring();

                //构造文件名

                string pagename = date + nid + ".html";

                //构造字符串

                str += "<tr><td width=360px>"+"<a href='newdetails/"+pagename+"'>"+ds.tables[0].rows[i]["n_title"].tostring()+"</a>"+"</td><td width=200px>"+ds.tables[0].rows[i]["n_date"].tostring()+"</td></tr>";

            }

            //调用转换方法生成静态页

            transferstatic(str);

        }

             //生成静态页

        public bool transferstatic(string strall)

        {

            //输出路径

            string outpath = server.mappath("~/");

            encoding encoding = encoding.getencoding("gb2312");

    

            //读取模版文件

            string htmlmode = server.mappath("~/htmlmodel/newslist.html");

            streamreader sr = null;

            streamwriter sw = null;

            string str = "";

            try

            {

                sr = new streamreader(htmlmode, encoding);

                str = sr.readtoend();

            }

            catch (exception e)

            {

                response.write(e.message);

                response.end();

                sr.close();

            }

            //构造要生成的静态页面的名字

            string pagename = "newslist.html";

            //开始替换内容

            str = str.replace("newslist", strall);

            //写文件

            try

            {

                sw = new streamwriter(outpath + pagename, false, encoding);

                sw.write(str);//将字符串str写到文件

                sw.flush();

            }

            catch (exception e)

            {

                response.write(e.message);

                response.end();

            }

            finally

            {

                sw.close();

            }

            return true;

      }

    在前台绑定新闻标题和时间:

            <table>
            <asp:repeater id="repeater1" runat="server">
                <itemtemplate>
                        <tr>
                            <td width="360px"><a href='<%# htmlpath(convert.todatetime(eval("n_date")),eval("nid").tostring())%>'><%# eval("n_title") %></a></td>
                            <td width="200px"><%# eval("n_date") %></td>
                        </tr>
                </itemtemplate>
视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058