62,046
社区成员
发帖
与我相关
我的任务
分享
public void ShowContent(int pi) //显示内容,pi为当前索引页,此为核心代码
{
string showContent = ""; //要显示的字符串
int cl = lblContent.Text.Length; //内容总长度
int ps = 4; //每页内容大小
int pc = cl % ps == 0 ? cl / ps : cl / ps + 1; //总页数
if (pi < pc)
{
showContent += lblContent.Text.Substring(ps * (pi - 1), ps);
}
else
{
showContent += lblContent.Text.Substring(ps * (pi - 1), cl - ps*(pi - 1));
}
this.lblText.Text = showContent;
}
//如果有HTML标签的话,还要用这个方法
public string NoHTML(string Htmlstring) //去除HTML标记
{
string htmlstring= Regex.Replace(Htmlstring, @" <(.[^>]*)>", "", RegexOptions.IgnoreCase);
return htmlstring;
}
/// <summary>
/// 当文章较长的时候自行分页
/// </summary>
/// <param name="p_strContent"></param>
/// <returns></returns>
public string OutputBySize(string p_strContent)//分页函数
{
string m_strRet = "";
int m_intPageSize = 3000;//文章每页大小
int m_intTotalPage = 0;
int m_intArticlelength = Common.NoHTML(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
{
Response.Redirect("Error.aspx");
}
}
//set the page content 设置获取当前页的大小
if (m_intCurrentPage < m_intTotalPage)
{
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);
}
else if (m_intCurrentPage == m_intTotalPage)
{
int mm_intPageSize = m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1);
m_strRet += p_strContent.Substring(m_intArticlelength - mm_intPageSize);
}
string m_strPageInfo = "<p></p>";
for (int i = 1; i <= m_intTotalPage; i++)
{
if (i == m_intCurrentPage)
m_strPageInfo += "第" + i + "页 | ";
else
m_strPageInfo += "<a href=gynecologyView.aspx?gid="+Request.QueryString["gid"]+"&pages=" + i + ".html>" + i + "</a>|";
}
//输出显示各个页码
this.labPageNumber.Text = m_strPageInfo;
}
else
{
m_strRet += p_strContent;
}
return m_strRet;
}
if (!IsPostBack)
{
GetRight();
}
int index=0;
if (string.IsNullOrEmpty(Request.QueryString["gid"]))
{
Response.Redirect("Error.aspx");
}
else
{
try
{
string pages = Request.QueryString["pages"]; //页数
if (!string.IsNullOrEmpty(pages))
{
index = pages.IndexOf(".");
}
if (index > 0)
{
string page = pages.Substring(0, index);
m_intCurrentPage = Convert.ToInt32(page);
}
int gid = Convert.ToInt32(Request.QueryString["gid"]);
string sql = "select column_title,column_detail from columns where column_id=" + gid;
dt = Common.GetTable(sql);
content = OutputBySize(dt.Rows[0]["column_detail"].ToString());
}
catch (Exception)
{
Response.Redirect("Error.aspx");
}
}
<%=content%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label3" runat="server" Text="1234" Visible="false"></asp:Label>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Button ID="Button2" runat="server" Text="下一页" onclick="Button2_Click" />
<asp:Label ID="Label2" runat="server" Text="1" ></asp:Label>
<asp:Label ID="Label4" runat="server" Text="0" ></asp:Label>
</div>
</form>
</body>
</html>
private int count = 1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = Label3.Text.Substring(0, 3);
Label4.Text = Math.Ceiling(Label3.Text.Length / 3.0).ToString();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
count = Int32.Parse(Label2.Text) + 1;
if (count >= Int32.Parse(Label4.Text))
{
Label1.Text = Label3.Text.Substring(count * 3 - 3);
}
else
{
Label1.Text = Label3.Text.Substring(count * 3 - 3, 3);
}
Label2.Text = count.ToString();
}