zoukankan      html  css  js  c++  java
  • ASP.NET实现新闻页面的分页功能[生成静态版]

    //生成静态网页

                 
    string path = Server.MapPath("~/news/" + folder + "/");

                 
    string file_template_name = Server.MapPath("~/news/template.htm");    //新闻模版文件
                 string file_template_content = "";
                 StreamReader sr_reader 
    = new StreamReader(file_template_name, Encoding.GetEncoding("gb2312"));
                 file_template_content 
    = sr_reader.ReadToEnd();
                 sr_reader.Close();
                 
    string[] subContent = FileSplit(content);
                 
    string file_content = "";
                 
    int pageNum = 0;
                 
    while (pageNum < 10 && subContent[pageNum] != "" && subContent[pageNum] != null)
                     pageNum
    ++;
                 
    for (int index = 0; index < pageNum; index++)
                 
    {
                     file_content 
    = file_template_content;
                     file_content 
    = file_content.Replace("$$category", list_department.SelectedItem.Text);     //新闻类别
                     file_content = file_content.Replace("$$title", title);                //新闻标题
                     file_content = file_content.Replace("<!--来源:$$author-->""来源:" + author);         //作者
                     file_content = file_content.Replace("$$time", time);                      //添加时间
                     file_content = file_content.Replace("$$content", subContent[index]);        //新闻正文
                     string pageLink = "";
                     
    int firstPage = 0;
                    
    //生成页码
                     if (index > 2) firstPage = index - 2;
                     
    for (int i1 = firstPage; i1 < index + 3 && i1 < pageNum; i1++)
                     
    {
                         
    if (i1 == index)
                             pageLink 
    = pageLink + "[" + (index + 1+ "]" + "&nbsp; &nbsp; &nbsp; &nbsp;";
                         
    else pageLink = pageLink + "<a href=" + htmlfilename + i1 + ".htm>[" + (i1 + 1+ "]</a>&nbsp; &nbsp; &nbsp; &nbsp;";

                     }

                     
    if (index < pageNum - 1)
                         pageLink 
    = pageLink + "<a href=" + htmlfilename + (index + 1+ ".htm>" + "下一页" + "</a>&nbsp; &nbsp; &nbsp; &nbsp;";
                     
    if (index > 0)
                         pageLink 
    = "<a href=" + htmlfilename + (index - 1+ ".htm>" + "上一页" + "</a>&nbsp; &nbsp; &nbsp; &nbsp;" + pageLink;
                     file_content 
    = file_content.Replace("<!-- $$pageLink -->", pageLink);
                     
    if (index == pageNum - 1&&attachment_filename != null && attachment_filename != String.Empty)
                     
    {
                         
    string[] attachment = attachment_filename.Split(new char[] '|' });
                         
    string attachmenthtml = "<a href="attachment/" + attachment[0] + "" >" + attachment[0+ "</a>";
                         
    for (int j = 1; j < attachment.Length; j++)
                             attachmenthtml 
    = attachmenthtml + "<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="attachment/" + attachment[j] + "" >" + attachment[j] + "</a>";
                         file_content 
    = file_content.Replace("$$attachment", attachmenthtml);
                     }

                     StreamWriter sw 
    = new StreamWriter(path + htmlfilename + index + ".htm"false, Encoding.GetEncoding("gb2312"));
                     sw.Write(file_content);
                     sw.Flush();
                     sw.Close();
                 }

                 HyperLink1.Text 
    = "预览: " + title;
                 HyperLink1.NavigateUrl 
    = "../news/" + folder + "/" + htmlfilename   + "0" + ".htm";
                 HyperLink1.Visible 
    = true;
                 txt_time.Text 
    = DateTime.Now.ToString("yyyy-MM-dd");
                 txt_title.Text 
    = "";
                 txt_author.Text 
    = "";
                 FreeTextBox1.Text 
    = "";
             }
             
    catch (Exception e)
             
    {
             }

         }
        
         
    //将正文分成多个页面
    protected string[] FileSplit(string fileContent)
         
    {
             
    int fileIndex = 0;
             
    string[] splitedFile = new string[10];
             
    while (fileContent.Length > 1500 && fileIndex < 9)     //每页至少1500个字符
             {
                 
    if (fileContent.IndexOf("<P>"1500< 0break;
                 splitedFile[fileIndex] 
    = fileContent.Substring(0, fileContent.IndexOf("<P>"1500));
                 fileContent 
    = fileContent.Remove(0, splitedFile[fileIndex].Length);
                 fileIndex
    ++;
             }

             splitedFile[fileIndex] 
    = fileContent;    //超过9页,剩下部分全放第十页
             return splitedFile;
         }

    }

  • 相关阅读:
    VB.NET程序设计笔记
    ASP.NET动态的网页增删查改
    一般处理程序加简单三层实现增删查改(2)
    一般处理程序加简单三层实现增删查改(1)
    设计模式六大原则(1):单一职责原则
    Android Https相关完全解析 当OkHttp遇到Https
    Androrid应用打包release版时关闭log日志输出
    Fragment结合ViewPager之懒加载
    多线程基础
    Android Studio wifi调试
  • 原文地址:https://www.cnblogs.com/sujingnan/p/1121478.html
Copyright © 2011-2022 走看看