posts - 15,  comments - 205,  trackbacks - 4
  在很多时候我们对一些文章很长时,往往浏览时用鼠标滑来滑去非常麻烦。要是我们对这篇文章划分为几个
页面,用不同的面页去浏览不但看起来很爽,而且效率方面也是大的提高了。

 下面是一段代码,给大家做个参考:
 先从数据库中检索出要文章,(很长的文章)
private string  OutputArticle()
    {
//Only output one Record of the "AriticID" is 2
        string m_strRet = "";
        。。。。
        //检索数据库文章的代码。
        
return m_strRet;
    }

对文章进行分页:
public string OutputBySize(string p_strContent)
    {
        
int m_intPageSize=1000;//文章每页大小
        int m_intCurrentPage = 1;//设置第一页为初始页
        int m_intTotalPage = 0;
        
int m_intArticlelength=p_strContent.Length;//文章长度
        if (m_intPageSize < m_intArticlelength)
        {
//如果每页大小大于文章长度时就不用分页了
            if (m_intArticlelength % m_intPageSize == 0)
            {
//set total pages count 
                m_intTotalPage = m_intArticlelength / m_intPageSize;
            }
            
else
            {
//if the totalsize
                m_intTotalPage = m_intArticlelength / m_intPageSize + 1;
            }
            
if (Request.QueryString["pages"!= null)
            {
//set Current page number
                try
                {
//处理不正常的地址栏的值
                    m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]);
                    
if (m_intCurrentPage > m_intTotalPage)
                        m_intCurrentPage 
= m_intTotalPage;
                }
                
catch
                {
                    m_intCurrentPage 
= m_intCurrentPage;
                }
            }
            
//set the page content 设置获取当前页的大小
            m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1));
            
string m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);
            
string m_strPageInfo = "<p></p>";
            
for (int i = 1; i <= m_intTotalPage; i++)
            {
                
if (i == m_intCurrentPage)
                    m_strPageInfo 
+= "<b>" + i + "</b>|";
                
else
                    m_strPageInfo 
+= "<a href=viewArticle.aspx?pages=" + i + ">" + i + "</a>|";
            }
            
//输出显示各个页码
            this.labPageNumber.Text = m_strPageInfo;
        }
        
return m_strRet;
    }

最后在页面加载事件中调用上面的方法:
 protected void Page_Load(object sender, EventArgs e)
    {
        
if (!Page.IsPostBack)
        {
            
string m_strContent = OutputArticle();
            
this.labContent.Text = OutputBySize(m_strContent);
        }
    }
页面代码很简单为:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewArticle.aspx.cs" Inherits="ViewArticle" %>

<!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>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Label ID="labContent" runat="server"></asp:Label>
        
<br />
        
<br />
        
<asp:Label ID="labPageNumber" runat="server"></asp:Label></div>
    
</form>
</body>
</html>
一个简单的按内容分页就是这样了。简单吧。

posted on 2007-07-16 16:10 micenter 阅读(620) 评论(11)  编辑 收藏

FeedBack:
2007-07-17 08:40 | JustDI      
收藏了哈
  回复  引用  查看    
2007-07-28 22:34 | 陶陶 [未注册用户]
private string OutputArticle()
{//Only output one Record of the "AriticID" is 2
string m_strRet = "";
。。。。
//检索数据库文章的代码。
return m_strRet;
}

请问楼主 这里是否能写详细点,呵呵,
  回复  引用    
2007-07-28 23:06 | 陶陶 [未注册用户]
谢谢楼主,搞定了
刚一下没看明白。
  回复  引用    
#4楼 [楼主]
2007-07-29 22:04 | 飞哥      
多谢陶陶的捧场,文章有疏落的地方还望见谅.呵...
  回复  引用  查看    
2007-09-25 23:48 | mygood [未注册用户]
好东西!
  回复  引用    
2007-10-12 15:19 | 小超 [未注册用户]
名称“m_strRet”在类或命名空间“yibaow.newsv”中不存在 出现这种错误是什么原回啊!站长
  回复  引用    
2007-11-01 14:09 | 超小 [未注册用户]
直接Length出来的字符数没有把html算进去哦....
要是把图片的代码也给截成两页怎么办......
  回复  引用    
2007-11-06 16:09 | yrq205 [未注册用户]
飞哥,您好!
程序提示
程序提示CS0103: 当前上下文中不存在名称“m_strRet”

怎么处理啊,有空给我发个Dome可以吗?yrq205@163.com

  回复  引用    
2007-11-15 22:26 | MicEnter [未注册用户]

@小超
@yrq205
不好意思,我好久没有看自己的博客了。
你们说的m_strRet 其实就是下面定义的一个变量而已,你们检查一下看看有没有这个变量。关于Demo可能上次装系统的时候删了。
string m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize)
  回复  引用    
2008-03-05 11:06 | mossback [未注册用户]
string m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);
这个地方有错误,当最后一页的时候,m_intPageSize应该为原来的初始大小,要不然会有剩余
  回复  引用    
2008-03-13 10:29 | 凯哥哥 [未注册用户]
@yrq205

这个很eazy,
int m_intPageSize = 200;//文章每页大小
int m_intCurrentPage = 1;//设置第一页为初始页
int m_intTotalPage = 0;
int m_intArticlelength = p_strContent.Length;//文章长度
在上面这一驼后面加一句
string m_strRet = string.Empty;

然后再把string m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);这一段中前面string m_strRet去掉string就搞定鸟,哇哈哈

  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-07-21 15:08 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 





<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

与我联系

搜索

 

常用链接

留言簿(7)

我参加的小组

我参与的团队

随笔档案(15)

文章分类(4)

友情链接

最新随笔

积分与排名

  • 积分 - 19125
  • 排名 - 2146

最新评论

阅读排行榜

评论排行榜