使用空降AspNetPager.dll http://download1.csdn.net/down3/20070608/08120841823.rar
页面头加上<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
分页部分
<webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Left" onpagechanged="AspNetPager1_PageChanged"
showcustominfosection="Left" width="37%" meta:resourceKey="AspNetPager1" style='font-size:12px' InputBoxStyle='width:19px'
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页"></webdiyer:aspnetpager>
cs中代码:
初始化时:首先查询取得记录总条数Count;
然后设置
AspNetPager1.RecordCount = Count;
AspNetPager1.PageSize = pageSize;
AspNetPager1.AlwaysShow = true;
另外如果你取得记录数据比较多的话 ;建议你最好dao那一块使用存储过程分页,这样返回来记录数比较少,速度也快而且占有内存极少
前端传入的页面显示条数及当前页数分别为AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
//调用后台查询方法 其中页面显示条数及当前页数分别为AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex;
}
关于datagrid实现分页 可以参考下面代码
页面部分
<asp:datagrid id="dgLabour" runat="server" AutoGenerateColumns="False" DataKeyField="ID" CellPadding="3"
BorderColor="White" BackColor="#E6E6E6" AllowPaging="True" PageSize="8" Width="100%">
<AlternatingItemStyle BackColor="#A4A3A3"></AlternatingItemStyle>
<ItemStyle Height="20px"></ItemStyle>
<HeaderStyle Font-Bold="True" Height="23px" Width="40px" BackColor="#FFCC00"></HeaderStyle>
<Columns>
......
</Columns>
<PagerStyle NextPageText="下一页&gt;" PrevPageText="&lt;上一页"></PagerStyle>
</asp:datagrid>
后台代码:
private void dgLabour_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
// this.dgLabour.CurrentPageIndex = e.NewPageIndex;
// BindGridLabour();//重新读取数据并填充到datagrid
this.dgLabour.EditItemIndex=-1;
if (e.NewPageIndex >=0 && e.NewPageIndex < dgLabour.PageCount)
{
this.dgLabour.CurrentPageIndex = e.NewPageIndex;
BindGridLabour();//重新读取数据并填充到datagrid
}
}
如果结合存储过程分页代码如下
<asp:DataGrid ID="partnerList" DataKeyField="partnerID" runat="Server" BorderWidth="0" cellspacing="1" cellpadding="3" BackColor="#0000F5"
Font-Size="12px" GridLines="None" HorizontalAlign="Center" AutoGenerateColumns="False" Width="100%" OnItemCommand="partnerList_ItemCommand" OnItemDataBound="partnerList_ItemDataBound">
<ItemStyle BackColor="White" Font-Bold="False" Font-Italic="False" Font-Overline="False"
Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" />
<HeaderStyle BackColor="#B3D9FF" Font-Bold="False" Font-Italic="False" Font-Overline="False"
Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" />
<Columns>
......
</Columns>
</asp:DataGrid>
第<asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="true" Width="38px" OnSelectedIndexChanged="ddlCurrentPage_SelectedIndexChanged">
</asp:DropDownList>页/总共
<asp:Label ID="lblpageNum" runat="server" Text="1"></asp:Label>页
//说明:其中ddlCurrentPage中的数据为页数(1......n)
cs代码
private void DataGrid(string PageIndex, bool flag)
{
。。。。。。
DataSet ds = biz.GetAllPartner(usufruct,nPageSize.ToString(),PageIndex,sortType,0);//nPageSize每页显示条数;PageIndex当前页数
if (flag == true)//需要初始化
{
DdlPageInit(biz, usufruct, sortType);
}
partnerList.DataSource = ds;
partnerList.DataBind();
int nPage = partnerList.CurrentPageIndex;
for (int i = 0; i < partnerList.Items.Count; i++)
{
int id = nPage * nPageSize + i + 1;
partnerList.Items[i].Cells[0].Text = id.ToString();
}
}
private void DdlPageInit(bizPartner biz,int usufruct, string sortType)
{
int RowCount = 0;//总记录数
//取得记录总条数并计算总页数
ddlCurrentPage.Items.Clear();
for (int j = 1; j <= PageCount; j++)//PageCount总页数
{
ddlCurrentPage.Items.Add(new ListItem(Convert.ToString(j), Convert.ToString(j-1)));
}
lblpageNum.Text = Convert.ToString(PageCount);
}
protected void ddlCurrentPage_SelectedIndexChanged(object sender, EventArgs e)
{
string pageIndex = ddlCurrentPage.SelectedItem.Text;
DataGrid(pageIndex, false);
}