asp.net 长内容文章自动分页

前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="articleview.aspx.cs" Inherits="articleview" %>
<%@ Register Src="~/head.ascx" TagName="head" TagPrefix="uc1" %>
<%@ Register Src="~/right.ascx" TagName="right" TagPrefix="uc2" %>
<%@ Register Src="~/foot.ascx" TagName="foot" TagPrefix="uc3" %>

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title><%# strTitle %>-评选动态-校园十大人物评选活动-山东建筑大学法政学院</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
    <div class="warper">
        <uc1:head ID="head" runat="server" />
        <div class="content">
            <div class="left_cont">
                 <div class="daohang">当前位置:<a href="default.aspx">首页</a> >> <a href="dongtai.aspx"> 评选动态</a> >> 正文</div>
                <div class="pxdt third">
                    <div class="cont_title"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
                    <div class="a_page f_color">文章发表时间:<span><asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></span>  来源:<span><asp:Label ID="Label3" runat="server" Text="Label"></asp:Label></span></div>
                    <div class="body_cont">
                        <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>
                        <asp:Label ID="labPageNumber" Font-Size="14px" runat="server"> </asp:Label>
                    </div>
                </div>
            </div>
            <uc2:right ID="right" runat="server" />
            <div class="clear"></div>
        </div>
        <uc3:foot ID="foot" runat="server" />
        
    </div>
</form>
</body>
</html>

后台代码:
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 articleview : System.Web.UI.Page
{
    DbClass.DbAccesscontrol conn = new DbClass.DbAccesscontrol();
    public string strTitle = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string strid = Request.QueryString["id"].ToString();
            int fid = 1;
            try
            {
                fid = int.Parse(strid);
            }
            catch
            { }

            string strsql = "select * from YS_NewsInfo where id=" + fid;
            DataTable dt = (DataTable)conn.gettable(strsql);
            strTitle = dt.Rows[0]["title"].ToString();
            Label1.Text = dt.Rows[0]["title"].ToString();
            Label2.Text = dt.Rows[0]["datetime"].ToString();
            Label3.Text = dt.Rows[0]["from"].ToString();
            Label4.Text = OutputBySize(Server.HtmlDecode(dt.Rows[0]["info"].ToString()),fid);
            DataBind();

        }
    }

    //public string OutputArticle(string strcontent)
    //{
    //    string strid = Request.QueryString["id"].ToString();
    //    int fid = 1;
    //    try
    //    {
    //        fid = int.Parse(strid);
    //    }
    //    catch
    //    { }

    //    string strsql = "select * from YS_NewsInfo where id=" + fid;
    //    DataTable dt = (DataTable)conn.gettable(strsql);
    //    //strTitle = dt.Rows[0]["title"].ToString();
    //    //Label1.Text = dt.Rows[0]["title"].ToString();
    //    //Label2.Text = dt.Rows[0]["datetime"].ToString();
    //    //Label3.Text = dt.Rows[0]["from"].ToString();
    //    //Label4.Text = OutputBySize(Server.HtmlDecode(dt.Rows[0]["info"].ToString()));
    //    //DataBind();
    //    //return conn.NoHTML(Server.HtmlDecode(dt.Rows[0]["info"].ToString()));
    //    return Server.HtmlDecode(dt.Rows[0]["info"].ToString());
    //}

    public string OutputBySize(string p_strContent,int pageid)
    {
        string m_strRet = 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));
            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=articleview.aspx?id=" + pageid + "&pages=" + i + ">" + i + "</a>|";
            }
            //输出显示各个页码
            this.labPageNumber.Text = m_strPageInfo;
        }
        return m_strRet;
    }
}
posted @ 2009-12-19 19:14  青衫  阅读(2831)  评论(2编辑  收藏  举报