AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码:
1.首先到www.webdiyer.com下载最新的AspNetPager.dll,直接在vs2005中添加引用即可。
2.在页面上注册控件,引入该控件,当然,需要在页面中使用一个数据载体,我这里使用的是repeater控件。
<%=AspNetPager Namespace""=webdiyer
<!--省略-->
<Webdiyer:AspNetPager id="AspNetPager1" runat="server" HorizontalAlign="Right" FirstPageText="<<" LastPageText=">>" PrevPageText="<" NextPageText=">" NumericButtonTextFormatString="-{0}-" Width="600px"
ShowCustomInfoSection="Left" ShowBoxThreshold="2" PageSize="5" InputBoxClass="text2" TextAfterInputBox="" OnPageChanging="AspNetPager1_PageChanging" />
<!--省略-->
<Webdiyer:AspNetPager id="AspNetPager1" runat="server" HorizontalAlign="Right" FirstPageText="<<" LastPageText=">>" PrevPageText="<" NextPageText=">" NumericButtonTextFormatString="-{0}-" Width="600px"
ShowCustomInfoSection="Left" ShowBoxThreshold="2" PageSize="5" InputBoxClass="text2" TextAfterInputBox="" OnPageChanging="AspNetPager1_PageChanging" />
3.cs代码
DataSet ds;
SqlDataAdapter dr;
SqlCommand com;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["SperConnectionString1"].ToString();
SqlConnection con = new SqlConnection(strconn);
con.Open();
com = new SqlCommand();
com.Connection = con;
com.CommandText = "select count(*) from Article";
AspNetPager1.AlwaysShow = true;
AspNetPager1.PageSize = 5;
AspNetPager1.RecordCount = (int)com.ExecuteScalar();
con.Close();
RepeaterDataBind();
}
}
private void RepeaterDataBind()
{
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["SperConnectionString1"].ToString();
dr = new SqlDataAdapter("select * from Article", strconn);
ds = new DataSet();
dr.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "Article");
this.Repeater2.DataSource = ds.Tables["Article"];
this.Repeater2.DataBind();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
RepeaterDataBind();
}
protected string FormatString_Size_13(string str)
{
if (str.Length > 33)
{
str = str.Substring(0, 32) + "";
}
return str;
}
SqlDataAdapter dr;
SqlCommand com;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["SperConnectionString1"].ToString();
SqlConnection con = new SqlConnection(strconn);
con.Open();
com = new SqlCommand();
com.Connection = con;
com.CommandText = "select count(*) from Article";
AspNetPager1.AlwaysShow = true;
AspNetPager1.PageSize = 5;
AspNetPager1.RecordCount = (int)com.ExecuteScalar();
con.Close();
RepeaterDataBind();
}
}
private void RepeaterDataBind()
{
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["SperConnectionString1"].ToString();
dr = new SqlDataAdapter("select * from Article", strconn);
ds = new DataSet();
dr.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "Article");
this.Repeater2.DataSource = ds.Tables["Article"];
this.Repeater2.DataBind();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
RepeaterDataBind();
}
protected string FormatString_Size_13(string str)
{
if (str.Length > 33)
{
str = str.Substring(0, 32) + "";
}
return str;
}
4.最后修改AspNetPager控件的PageChanging事件为AspNetPager1_PageChanging就可以了。
是不是很简单呢?