• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > asp.net新闻列表生成静态页之批量和单页生成

asp.net新闻列表生成静态页之批量和单页生成

作者:残留中的回忆 字体:[增加 减小] 来源:互联网 时间:2017-05-28

残留中的回忆 通过本文主要向大家介绍了新闻发布 asp.net,新闻发布系统asp.net,asp.net,asp net培训,asp和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

大家都知道,生成静态页的方法有两种,第一种是使用C#在后台硬编码,第二种是读取模板文件,使用字符串代替。总体来讲第一种方法代码量比较大,维护起来有点困难。生成静态页的目的是为了提高用户体验度,加快访问速度。

使用静态页面还有如下好处:
1、 安全:使用静态页面,用户访问的使没有任何操作功能的html页面,可以说从安全性方面大大提高了程序及服务器的安全。

2、 快速:用户访问的是提前生成好的静态页面,使用户对页面的请求瓶颈只受IO的限制而不会有其他方面的影响。

3、 降低服务器,数据库负载:因为用户访问的是静态页,对承载静态页的服务器配置要求降低了许多,同时,不会因为过大的访问量,造成数据库服务器负载过重等问题。

下面分享asp.net新闻列表生成静态页之批量和单页生成。前期准备,需要新建一个文件夹。。前台展示:/new/default.aspx  这个页面放的就是动态的新闻列表数据。

先看下图:

 

不多说了上代码

这里要说明一下,我用的AspNetPager分页控件,需要设置一下

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" FirstPageText="首页"
 LastPageText="末页" NextPageText="下一页" NumericButtonCount="10" 
 OnLoad="AspNetPager1_Load" OnPageChanged="AspNetPager1_PageChanged1"
 PageSize="13" PrevPageText="上一页" Font-Bold="False" Font-Size="13px"
 CssClass="badoo" UrlPaging="true" CurrentPageButtonPosition="Center" 
 PagingButtonSpacing="5px" EnableUrlRewriting="True" 
 UrlRewritePattern="news_{0}.html" ShowMoreButtons="False" 
 ShowPageIndexBox="Never" >
  </webdiyer:AspNetPager>
</div>

需要设置三个地方:

UrlPaging="true" 设置启用url来传递分页信息  EnableUrlRewriting="True" 启用URL重写   UrlRewritePattern="news_{0}.html" 设置分页URL重写格式

Static.ashx页面代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Net;
using System.Data;
namespace Web.admin.ashx
{
 /// <summary>
 /// Static 生成静态页
 /// </summary>
 public class Static : IHttpHandler
 {
  public void ProcessRequest(HttpContext context)
  {
   string url = context.Request["geturl"];
   string path = context.Request["getpath"];
   string id = context.Request["id"];
   string act = context.Request["act"];
   string page = context.Request["pages"];
   string pagecount = context.Request["pagecouts"];
   string table = context.Request["table"];
   string str = "";
   if (act == "0")
   {
    //生成当前选中项
    string ids = id.Substring(0, (id.Length - 1));
    string[] s_id = ids.Split(',');
    for (int i = 0; i < s_id.Length; i++)
    {
     string path2 = context.Server.MapPath("../../" + path + s_id[i] + ".html");
     str = CreateHTML("http://localhost:4216/" + url + s_id[i], path2); //这里必须是拼接的绝对路径
     string urls = "http://localhost:4216/" + path + s_id[i] + ".html"; //这里必须是拼接的绝对路径
     string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[i]);
     if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)
     {
     }
    }
    context.Response.Write(str);
    context.Response.End();
   }
   if (act == "1")
   {
    //生成当前页列表
    string path2 = context.Server.MapPath("../../" + path + page + ".html");
    str = CreateHTML("http://localhost:4216/" + url + page, path2);
    context.Response.Write(str);
    context.Response.End();
   }
   if (act == "2")
   {
    //生成全部列表
    int count = Convert.ToInt32(pagecount);
    for (int i = 1; i <= count; i++)
    {
     string path2 = context.Server.MapPath("../../" + path + i + ".html");
     str = CreateHTML("http://localhost:4216/" + url + i, path2);
    }
    context.Response.Write(str);
    context.Response.End();
   }
   if (act == "3")
   {
    //生成全部项
    string sqlsel =string.Format("select Id from {0}",table);
    DataTable dt = new DBTool.DB().RunSqlGetDataTable(sqlsel);
    if (dt.Rows.Count > 0)
    {
     string idall = "";
     for (int i = 0; i < dt.Rows.Count; i++)
     {
      idall += dt.Rows[i]["Id"].ToString()+",";
     }
     string ids = idall.Substring(0, (idall.Length - 1));
     string[] s_id = ids.Split(',');
     for (int ii = 0; ii < s_id.Length; ii++)
     {
      string path2 = context.Server.MapPath("../../" + path + s_id[ii] + ".html");
      str = CreateHTML("http://localhost:4216/" + url + s_id[ii], path2);
      string urls = "http://localhost:4216/" + path + s_id[ii] + ".html";
      string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[ii]);
      if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)
      {
      }
     }
     context.Response.Write(str);
     context.Response.End();
    }
   }
  }
  public string CreateHTML(string strurl, string path)
  {
   string str = "";
   StreamReader sr;
   StreamWriter sw = null;
   try
   {
    WebRequest HttpWebRequest = WebRequest.Create(strurl);
    WebResponse HttpWebResponse = HttpWebRequest.GetResponse();
    sr = new StreamReader(HttpWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
    string strHtml = sr.ReadToEnd();
    sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("utf-8"));
    sw.WriteLine(strHtml);
    sw.Flush();
    sw.Close();
    str = "生成成功!";
   }
   catch (Exception ex)
   {
    str = "生成失败,失败原因" + ex.Message+"。";
   }
   return str;
  }
  public bool IsReusable
  {
   get
   {
    return false;
   }
  }
 }
}

</div>

后台生成前台代码

  

<div>
  <table border="0" cellpadding="0" cellspacing="0" class="list_table1">
 <tr>
 <td width="13%"><input type="text" runat="server" id="text_word" class="text lh20" placeholder="请输入关键字"/></td>
 <td width="5%">
  <asp:Button ID="Button1" runat="server" Text="搜索" CssClass="suborange" OnClick="Button1_Click" />
 </td>
  <td width="82%"> <a href="list.aspx" class="subgreen">查看全部</a></td>
 </tr>
</table>
 <table width="100%" border="0" cellpadding="0" cellspacing="0" class="list_table"><tr>
  <th width="30"> </th>
  <th width="60" data-field="id" data-url="newslist.aspx" >ID<img id="lab_id" src="images/a2.png" /></th>
  <th width="200" data-field="Name" data-url="newslist.aspx" >名称<img id="lab_Name" src="images/a2.png" /></th>
  <th width="200" data-field="Dir" data-url="newslist.aspx">地址<img id="lab_Dir" src="images/a2.png" /></th>
  <th width="150" data-field="Static" data-url="newslist.aspx">静态化<img id="lab_Static" src="images/a2.png" /></th>
  <th>操作</th>
</tr>
  <asp:Repeater ID="R1" runat="server" OnItemDataBound="R1_ItemDataBound" ><ItemTemplate>
   <tr class="tr" id='tr_<%#Eval("id")%>'>
<td class="td_center"><label id='labe_<%#Eval("id")%>'><asp:CheckBox ID="chkItem" runat="server" ToolTip='<%#Eval("id")%>'></asp:CheckBox></label><input type="hidden" id="text_id" runat="server" value='<%#Eval("id")%>' /></td>
     <td class="td_center"> <%#Eval("id") %></td>
     <td class="td_center"> <%#Eval("Name") %></td>
    <td class="td_center">
<a href="javascript:;" class="a_1" data-id='&



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp.net新闻列表生成静态页之批量和单页生成

相关文章

  • 2017-05-28C#创建临时文件的方法
  • 2017-05-28C#中把Datatable转换为Json的5个代码实例
  • 2017-05-28C#在DataTable中根据条件删除某一行的实现方法
  • 2017-11-28C#数据库的修改
  • 2017-05-28c#通过DES加密算法加密大文件的方法
  • 2017-05-28C#使用this关键字实现串联构造函数调用方法
  • 2017-05-28C#实现的MD5加密功能与用法示例
  • 2017-05-28C#中接口(interface)的理解
  • 2017-05-28C#通过正则表达式实现提取网页中的图片
  • 2017-05-28winform实现拖动文件到窗体上的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用数字签名实现数据库记录防篡改(Java实现)
    • 解析C#的扩展方法
    • C# 16进制与字符串、字节数组之间的转换
    • 深入HTTP head的使用详解
    • WinForm实现的图片拖拽与缩放功能示例
    • c#使用filesystemwatcher监视文件系统的变化
    • C#统计字符串中数字个数的方法
    • C#多线程学习之(四)使用线程池进行多线程的自动管理
    • C# 调用Delphi dll 实例代码
    • C# 重写ComboBox实现下拉任意组件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有