对页面文章过长的处理方法
當在 一個頁面顯示一個文章的內容時,如果文章太長,會造成頁面無限高,樣式很不好看,對此我有兩種解決方法:
一,將內容放在<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;
????????}
????}
}
轉載于:https://www.cnblogs.com/nlx0201/archive/2010/10/11/1908139.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的对页面文章过长的处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: context:annotation-c
- 下一篇: 新浪的股票接口 c#