最近有个项目,要求分页做成静态的那种,我是新手,这种问题我不知道如何下手,请高手指教!!!
如果数据两比较大的话,只需要重新生成一,两个页面就好,更新一条数据就全部重新生成的那种不太好。
求高手指教!!!
有源码更好。

解决方案 »

  1.   

    格人觉得 盲目生成 html 是对 数据库的 浪费 和侮辱。
      

  2.   

    xiahouwen(武眉博<活靶子.NET>)
    格人觉得 盲目生成 html 是对 数据库的 浪费 和侮辱。=========================
      

  3.   

    静态页不仅仅速度快,还稳定,我在做.net的时候经常出现丢失时间的情况,不知道大家有没有遇到过。
    请CSDN上的高手指教!!
      

  4.   

    算了.我还发一个给你吧..先读模板数据,然后替换里面的字段..
    接着分页~..
    /// <summary>
        /// 生成内容页
        /// </summary>
        /// <param name="id"></param>
        private void makeshow(int id)
        {
            //path code
            string path = Server.MapPath("..\\") + "Article\\";
            string strzw = "";
            string strcss = "";                dbcon inf = new dbcon();
            inf.getstrsql = "Select top 1 [info] from [System]";
            inf.datareadopen(true);
            string[] info = inf.gettb.Split(',');
            string siteurl = info[1];        dbcon t = new dbcon();
            t.getstrsql = "select top 1 [ColumnName],[ColumnId],[Title],[Content],[ViewNum],[CommentNum],[Author],[Source] from [content] where id=" + id;
            t.datareadopen();
            t.getodr.Read();
            //con
            dbcon tempid = new dbcon();
            tempid.getstrsql = "Select [Article_TempId] from [Column] where id=" + Convert.ToString(t.getodr["ColumnId"]);
            tempid.datareadopen(true);
            dbcon mb = new dbcon();
            mb.getstrsql = "select top 1 [Page_Head],[Page_View],[Page_Foot],[Page_Css]  from [Template] where id="+tempid.gettb;
            mb.datareadopen();
            mb.getodr.Read();
            strzw = Convert.ToString(mb.getodr["Page_Head"]) + Convert.ToString(mb.getodr["Page_View"]) + Convert.ToString(mb.getodr["Page_Foot"]);
            strcss = Convert.ToString(mb.getodr["Page_Css"]);
            string htmlfilename = "Article" + id + ".html";
            mb.closedataread();        strzw = strzw.Replace("{$artTitle$}", Convert.ToString(t.getodr["title"]));
            strzw = strzw.Replace("{$artCSS$}", strcss);
            strzw = strzw.Replace("$ArticleTitle$", Convert.ToString(t.getodr["title"]));
            strzw = strzw.Replace("$ArticleAuthor$", Convert.ToString(t.getodr["Author"]));
            strzw = strzw.Replace("$ArticleFrom$", Convert.ToString(t.getodr["Source"]));
            strzw = strzw.Replace("$ArticleViewTotal$", Convert.ToString(t.getodr["ViewNum"]));
            strzw = strzw.Replace("$ArticleCommentTotal$", Convert.ToString(t.getodr["CommentNum"]));
            string[] npage = Regex.Split(Convert.ToString(t.getodr["Content"]), "NextPage", RegexOptions.IgnoreCase);
            int j = npage.Length;
            //写出分页
            string npnum = "本文章共" + j + "页       第<a href=Article" + id + ".html> 1 </a>";
            if (j > 1)
            {
                for (int x = 1; x < j + 1; x++)
                {
                    if (x != 1)
                    {
                        npnum += "<a href=Article" + id + "_" + x + ".html> " + x + " </a>";
                    }
                }
            }
            npnum += " 页";
            strzw = strzw.Replace("$PageNum$", npnum);
            string bstrzw = strzw;
            for (int k = 0; k < j; k++)
            {
                strzw = bstrzw;
                strzw = strzw.Replace("$ArticleText$", npage[k]);
                strzw = strzw.Replace("$SystemPath$", siteurl);
                if (k == 0)
                {
                    wfile(path + htmlfilename, strzw);
                }
                else
                {
                    wfile(path + "Article" + id + "_" + (k + 1) + ".html", strzw);
                }
            }
            t.closedataread();
        }
        /// <summary>
        /// 根据字符串写文件
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="strzw"></param>
        private void wfile(string filename, string strzw)
        {
            Encoding code = Encoding.GetEncoding("gb2312");
            //stream
            StreamWriter sw = null;
            try
            {
                sw = new StreamWriter(filename, false, code);
                sw.Write(strzw);
                sw.Flush();
                Response.Write(filename + " Successful!<br>");
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
            }
            finally
            {
                sw.Close();
            }
        }
      

  5.   

    忘记说了
    我用的手动分页分页标准是nextpage