求一个ASP.NET 内容分页的代码内容里面包含了 图片 文字 等
解决方案 »
- asp.net如何編輯多行后一次性保存到數據庫
- vs2005完全编译发布的网站在服务器上不能运行
- CustomValidator验证控件问题OnServerValidate这个保护成员真郁闷。
- 头都大了,根据数据表,写个函数显示成html表格
- 谁知道微软件的asp.net快速入门哪有下载吗
- window.alert问题,向高手请教!
- 大家有用过jquery jqplot做过统计图吗?打印不出来图形啊,只有些数字
- treeview的问题!
- 一个很简单的asp错误
- 请教:关于ASP.NET开发互联网平台的设计的讨论
- .NET中,自定义控件+Updatepanel的问题,
- access 日期 数据类型问题
可以试试
using System.Data;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
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;
using System.Web.SessionState;
/// <summary>
/// ContentPager 的摘要说明
/// summary>
public class ContentPager : System.Web.UI.Page
{
private System.Web.UI.WebControls.HyperLink lnknext;
private System.Web.UI.WebControls.HyperLink lnkprev;
private System.Web.UI.WebControls.HyperLink lnkfist;
private System.Web.UI.WebControls.HyperLink lnklast;
private System.Web.UI.WebControls.Label pagenum;
private System.Web.UI.WebControls.Label pagecount;
private System.Web.UI.WebControls.Label displaycontent;
public ContentPager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void datapager(string content,string query)
{
string PagerSplit = System.Configuration.ConfigurationManager.AppSettings["PagerSplit"];//从 web.config中获取分页符,当然这里可以自己定义,为了方便还是放到配置文件或者数据库中。
string[] contentArray = StringSplit(content, PagerSplit);//这里是一个方法,摘自网上
int PageCount = contentArray.Length;
this.pagecount.Text = "共" + PageCount.ToString() + "font>b>页";
int CurPage;
//确定当前页数
if (System.Web.HttpContext.Current.Request.Params["Page"] != null)
{
CurPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
}
else
{
CurPage = 1;
}
if (CurPage < 1) CurPage = 1;
if (Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]) > PageCount)
{
CurPage = PageCount;
}
//显示当前页数
this.pagenum.Text = "第" + CurPage.ToString() + "font>b>页";
//下一页
if (CurPage != PageCount)
{
lnknext.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + query;
}
//上一页
if (CurPage > 1)
{
lnkprev.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + query;
}
//第一页
if (CurPage != 1)
{
lnkfist.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1) + query;
}
//最后一页
if (CurPage != PageCount)
{
lnklast.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(PageCount) + query;
}
displaycontent.Text = contentArray[CurPage - 1].ToString();
}
#region System.Web.UI.WebControls.HyperLink DisplayContent
public System.Web.UI.WebControls.Label DisplayContent
{
get
{
return this.DisplayContent;
}
set
{
this.displaycontent = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnkprev
public System.Web.UI.WebControls.HyperLink Lnkprev
{
get
{
return this.lnkprev;
}
set
{
this.lnkprev = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnknext
public System.Web.UI.WebControls.HyperLink Lnknext
{
get
{
return this.lnknext;
}
set
{
this.lnknext = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnkfist
public System.Web.UI.WebControls.HyperLink Lnkfist
{
get
{
return this.lnkfist;
}
set
{
this.lnkfist = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnklast
public System.Web.UI.WebControls.HyperLink Lnklast
{
get
{
return this.lnklast;
}
set
{
this.lnklast = value;
}
}
#endregion
#region System.Web.UI.WebControls.Label Pagenum
public System.Web.UI.WebControls.Label Pagenum
{
get
{
return this.pagenum;
}
set
{
this.pagenum = value;
}
}
#endregion
#region System.Web.UI.WebControls.Label Pagecount
public System.Web.UI.WebControls.Label Pagecount
{
get
{
return this.pagecount;
}
set
{
this.pagecount = value;
}
}
#endregion
#region 将字符串分割成数组
/// <summary>
/// 将字符串分割成数组
/// summary>
/// <param name="strSource">param>
/// <param name="strSplit">param>
/// <returns>returns>
public string[] StringSplit(string strSource, string strSplit)
{
string[] strtmp = new string[1];
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[0] = strSource;
return strtmp;
}
else
{
strtmp[0] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
#region 采用递归将字符串分割成数组
/// <summary>
/// 采用递归将字符串分割成数组
/// summary>
/// <param name="strSource">param>
/// <param name="strSplit">param>
/// <param name="attachArray">param>
/// <returns>returns>
private string[] StringSplit(string strSource, string strSplit, string[] attachArray)
{
string[] strtmp = new string[attachArray.Length + 1];
attachArray.CopyTo(strtmp, 0);
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[attachArray.Length] = strSource;
return strtmp;
}
else
{
strtmp[attachArray.Length] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
}
在aspx.cs中增加调用代码。
private ContentPager pager;
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);//接收参数,例如访问这个页是xxx.aspx?id=1
DataSet ds = new DataSet();
//从数据库读内容部分就略掉了
DataRow drow;
drow = ds.Tables[0].Rows[0];
string cont = drow["content"].ToString();//此部分可以把内容中的HTML代码转换一下,我也省略了
//文章分页,关键部分
pager = new ContentPager();
pager.Lnknext = this.lnknext;
pager.Lnkprev = this.lnkprev;
pager.Lnklast = this.lnklast;
pager.Lnkfist = this.lnkfist;
pager.Pagenum = this.currentpage;
pager.Pagecount = this.totalpage;
pager.DisplayContent = this.content;
string query = "&id=" + Request.QueryString["id"].ToString();
pager.datapager(cont, query);
}
public void GetDataSource{
this.AspNetPager.PageChanged -= AspNetPager_PageChanged;
DataTable table = customeDAL.GetCustoms(AspNetPager.PageSize, currentPage, AspNetPager, sortExpression, sortDirection, Condition, currentUserID, currentUserDealerCode, CheckDataFormat.GetLicetCharacter(txtKeyWord.Text.ToString().Trim()));
if (table != null)
{
gvCustomer.DataSource = table.DefaultView;
gvCustomer.DataBind();
} if (currentPage > 1)
{
AspNetPager.FirstPageText = "<img src=../../images/transparent.gif border=0 valign=middle hspace=3 class=first>";
AspNetPager.PrevPageText = "<img src=../../images/transparent.gif border=0 valign=middle hspace=3 class=forward>";
}
else
{
AspNetPager.FirstPageText = "<img src=../../images/first_gray.gif border=0 valign=middle hspace=3>";
AspNetPager.PrevPageText = "<img src=../../images/forward_gray.gif border=0 valign=middle hspace=3>";
} if (currentPage == AspNetPager.PageCount || AspNetPager.PageCount == 0)
{
AspNetPager.LastPageText = "<img src=../../images/end_gray.gif border=0 valign=middle hspace=3>";
AspNetPager.NextPageText = "<img src=../../images/next_gray.gif border=0 valign=middle hspace=3>";
}
else
{
AspNetPager.LastPageText = "<img src=../../images/transparent.gif border=0 valign=middle hspace=3 class=end>";
AspNetPager.NextPageText = "<img src=../../images/transparent.gif border=0 valign=middle hspace=3 class=next>";
} this.AspNetPager.PageChanged += AspNetPager_PageChanged;
}
翻页事件如下:
protected void AspNetPager_PageChanged(object sender, EventArgs e)
{
currentPage = AspNetPager.CurrentPageIndex; // 记录列表当前页码
txtCurrentPage.Value = currentPage.ToString();
GetDataSource(Condition);// 绑定所有用户信息 }
AspNetPager非常好用!