当在 一个页面显示一个文章的内容时,如果文章太长,会造成页面无限高,样式很不好看,对此我有两种解决方法:
一,将内容放 在<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>>></b> <asp:Literal ID="litSubject" runat="server"></asp:Literal>>> <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; } }}