时间:2016-02-16 02:28 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net 文章内容分页显示的代码】,下面是详细的讲解!
asp.net 文章内容分页显示的代码
aspx:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ArticlePage.aspx.cs" Inherits="ArticlePage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>文章分页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="text-align: center;" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" style="width: 400px; background-color: #ffff99;">
<table style="width: 100%">
<tr>
<td style="width: 100%; border-top: #ff3300 2px dotted; border-left-width: 2px; border-left-color: #ff3300; border-bottom: #ff3300 2px dotted; border-right-width: 2px; border-right-color: #ff3300; height: 25px; text-align: center;">
<%=ArticleTitle %></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 400px; height: 100%;" align="left">
<p style="background-color: oldlace">
<%=Article %>
</p>
</td>
</tr>
<tr>
<td style="width: 400px; background-color: #ffff99; height: 48px;">
<table style="width: 100%">
<tr>
<td style="width: 100%; border-top: #ff3300 2px dotted; border-left-width: 2px; border-left-color: #ff3300; border-bottom: #ff3300 2px dotted; border-right-width: 2px; border-right-color: #ff3300;" align="left">
<p>
<asp:HyperLink ID="firstLink" runat="server" Visible="False">首页</asp:HyperLink>
<asp:HyperLink ID="preLink" runat="server" Visible="False">上一页</asp:HyperLink>
<asp:HyperLink ID="nextLink" runat="server" Visible="False">下一页</asp:HyperLink>
<asp:HyperLink ID="lastLink" runat="server" Visible="False">末页</asp:HyperLink>
</p>
<p>
<%
if(pageSum>1)
{
for (int i=1; i <=pageSum; i++)
{
if (pageNo==i)
{
%>
<%=i%>
<%
}
else
{
%>
<a href="?page=<%=i %>"><%=i%></a>
<%
}
}
}
%>
页数:<%=pageNo %>/<%=pageSum %>
</p></td>
</tr>
</table>
</td>
</tr>
</table>
<br />
</div>
</form>
</body>
</html>
//==========================
aspx.cs:
(C#)
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class ArticlePage : System.Web.UI.Page
{
protected string Article="", ArticleTitle="";
protected int pageNo=1, pageSum=1;
protected void Page_Load(object sender, EventArgs e)
{
//实际应用中,此处的数据通过操作数据库来获取
ArticleTitle="文章标题";
string filename="20091795819.html";
string mPath=Server.MapPath("h3g/");
string filepath=mPath + filename;
ShowArticle(filepath);
}
protected void ShowArticle(string filepath)
{
string page=Request.Params["page"];
int perPageLine=5;//每页行数
ArrayList al=fileOpr.ReadFileContentToArrayList(filepath);//按行读取文件内空到数组中
int contentLine=al.Count;
pageSum=(int)System.Math.Ceiling((double)contentLine / perPageLine);//总页数,进1取整
if (page==null || page=="" || page=="1")
{
pageNo=1;
if (contentLine <=perPageLine)
{
for (int i=0; i < contentLine; i++)
{
Article +=al[i].ToString();
}
}
else
{
for (int i=0; i < perPageLine; i++)
{
Article +=al[i].ToString();
}
firstLink.Visible=false;
preLink.Visible=false;
nextLink.NavigateUrl="?page=" + (pageNo + 1);
nextLink.Visible=true;
lastLink.NavigateUrl="?page=" + pageSum;
lastLink.Visible=true;
}
}
else
{
pageNo=int.Parse(page);
if (pageNo < pageSum)
{
for (int i=perPageLine * (pageNo - 1); i < perPageLine * pageNo; i++)
{
Article +=al[i].ToString();
}
firstLink.NavigateUrl="?page=1";
firstLink.Visible=true;
preLink.NavigateUrl="?page=" + (pageNo - 1);
preLink.Visible=true;
nextLink.NavigateUrl="?page=" + (pageNo + 1);
nextLink.Visible=true;
lastLink.NavigateUrl="?page=" + pageSum;
lastLink.Visible=true;
}
else
{
for (int i=contentLine - perPageLine * (pageSum - 1); i < contentLine; i++)
{
Article +=al[i].ToString();
}
firstLink.NavigateUrl="?page=1";
firstLink.Visible=true;
preLink.NavigateUrl="?page=" + (pageNo - 1);
preLink.Visible=true;
nextLink.Visible=false;
lastLink.Visible=false;
}
}
}
}
重用类fileOpr.cs:
fileOpr.ReadFileContentToArrayList(filepath);中的方法:
public static ArrayList ReadFileContentToArrayList(string filepath)
{
ArrayList al=new ArrayList();
FileStream fs=new FileStream(filepath, FileMode.Open, FileAccess.Read);
StreamReader srd=new StreamReader(fs, Encoding.Default);
//使用StreamReader类来读取文件
srd.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine=srd.ReadLine();
while (strLine !=null)
{
strLine=srd.ReadLine();
al.Add(strLine + "\n");
}
//关闭此StreamReader对象
srd.Close();
fs.Dispose();
fs.Close();
return al;
}
注:有种文章分页的思路是用截取文本字符数的方法来处理,这个方法当文章内容是html代码的话,分页后会引起排版问题。
上面代码的方法思路是按行数来处理,这个方法个人认为相对更好些。在后台管理文章内容文件时,保证html代码的良好排版换行即可。
关于asp.net 文章内容分页显示的代码的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
