博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转:对页面文章过长的处理方法
阅读量:4483 次
发布时间:2019-06-08

本文共 3526 字,大约阅读时间需要 11 分钟。

当在 一个页面显示一个文章的内容时,如果文章太长,会造成页面无限高,样式很不好看,对此我有两种解决方法:

一,将内容放 在<div>标签中,然后设置标签的style,具体<div style="overflow:auto;height:50px;">,这里的height是设置div的高度,然后设置当高度超过后会显示一 个滚动条,不会破坏页面的整体效果
二,在后来通过分割字符来进行分页,代码如下:
前台代码
<div class="rBox artBox" style="margin-top:0;background-color:#f0f9ff;">
  <div class="tit02" style="background-image:url('images/tit_bg2.gif');">
      <b><a href="Default.aspx">首页</a>&gt;&gt;</b>
      <asp:Literal ID="litSubject" runat="server"></asp:Literal>&gt;&gt;
            <asp:Literal ID="litName" runat="server"></asp:Literal>
  </div>
  <h2><asp:Literal ID="litNewsName" runat="server" Text=""></asp:Literal></h2>
  <div style="font-size:14px;line-height:1.7em;padding:7px 10px 0 10px;"><asp:Literal ID="litContents" runat="server" Text=""></asp:Literal></div>
<hr style="width:98%; text-align:center;" />
  <div style="text-align:right; padding-right:20px; font-size:14px;"><asp:Literal ID="litPageNum" runat="server"></asp:Literal></div>
     <div class="clear"></div>
</div>
后台代码
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using BLL;
using Common;
namespace WebTrain
{
    public partial class ArticleDetails : System.Web.UI.Page
    {
        string id = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                id =Request.QueryString["id"];
            }
            if (!string.IsNullOrEmpty(id))
            {
                if (!IsPostBack)
                {
                    loadData();
                }
            }
        }
        void loadData()
        {
            DataSet dsArt = BLL.Release_BLL.getReleaseByID(id);
            if (dsArt.Tables[0].Rows.Count > 0)
            {
                litNewsName.Text = dsArt.Tables[0].Rows[0]["newsName"].ToString();
                this.litContents.Text = OutputBySize(dsArt.Tables[0].Rows[0]["contents"].ToString().Replace("<div","").Replace("</div>","").Replace("<span","").Replace("</span>",""));
                DataSet dsSubject = BLL.Subject_BLL.getSubject(dsArt.Tables[0].Rows[0]["subjectID"].ToString());
                if (dsSubject.Tables[0].Rows.Count > 0)
                {
                    litSubject.Text = dsSubject.Tables[0].Rows[0]["subjectName"].ToString();
                    litName.Text = dsArt.Tables[0].Rows[0]["newsName"].ToString();
                }
            }
        }
        //分页
        public string OutputBySize(string p_strContent)
        {
            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 (Exception ex)
                    {
                        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=ArticleDetails.aspx?id=" + Request.QueryString["id"] + "&pages=" + i + ">" + i + "</a>|";
                }
                //输出显示各个页码
                this.litPageNum.Text = m_strPageInfo;
            }
            return m_strRet;
        }
    }
}

转载于:https://www.cnblogs.com/mechase/archive/2011/11/07/2239380.html

你可能感兴趣的文章
HDU4247【瞎搞】
查看>>
lightoj 1125【背包·从n个选m个】
查看>>
HDU 1243 反恐训练营(最长公共序列)
查看>>
mysql数据库隔离级别
查看>>
(六)buildroot使用详解
查看>>
chrome修改UserAgent,调试
查看>>
Source Insight4.0 试用。。试用。。试用。。
查看>>
python循环for,range,xrange;while
查看>>
hadoop的节点间的通信
查看>>
HashMap
查看>>
mysql 主从 重新同步
查看>>
论如何制做一个工程APP的测试内容
查看>>
如何通过Java启动linux脚本
查看>>
linux系统调用之网络管理2
查看>>
三种样式表插入方法
查看>>
hdu 2139 Calculate the formula (递推)
查看>>
mac, ios 模拟器
查看>>
双向宽度优先搜索
查看>>
常见的异常处理
查看>>
Linux基本命令参数
查看>>