62,271
社区成员
发帖
与我相关
我的任务
分享
建三个Lable控件,ID分别为lb_page,lb_count,lb_currentpage,分别表示共有多少页,共有多少条记录,当前页是多少页
建四个LinkButton控件,ID分别为lbtn_frist,lbtn_up,lbtn_down,lbtn_last,分别表示首页,上一页,下一页,尾页
建一个DropDownList控件,表于选择要跳转到的页
当然肯定要建一个datalist控件,不用设置数据源
前台代码
<p> 共<asp:Label ID="lb_count" runat="server" Text="Label"></asp:Label>记录
共
<asp:Label ID="lb_page" runat="server" Text="Label"></asp:Label>
页 当前第
<asp:Label ID="lb_currentpage" runat="server" Text="1"></asp:Label>页
<asp:LinkButton ID="lbtn_frist" runat="server" OnClick="lbtn_frist_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lbtn_up" runat="server" OnClick="lbtn_up_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_down" runat="server" OnClick="lbtn_down_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_last" runat="server" OnClick="lbtn_last_Click">尾页</asp:LinkButton>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList></p>
后台代码
public partial class _Default : System.Web.UI.Page
{
public void Page_Load(object sender, EventArgs e)
{
dlbind();
}
public string GetSub(string str, int length)
{
if (str.Length > length)
{
return str.Substring(0, length) + "。。。";
}
else
{
return str;
}
}
//
public void dlbind() //分页主函数
{
int curpage = Convert.ToInt32(lb_currentpage.Text);
DataTable dt=new DataTable();
DAL.ExecuteSql exec=new DAL.ExecuteSql();
exec.run(dt,"select *from myNews"); //在此设置SQL语句,exec.Run()是封装好的函数,请替换为数据库操做(连接 执行sql语句 并最终返回数据到表dt中)
PagedDataSource ps = new PagedDataSource();
ps.DataSource =dt.DefaultView;
ps.AllowPaging = true;
ps.PageSize = 3; //设置每页显示条数
ps.CurrentPageIndex = curpage - 1;
lb_page.Text = Convert .ToString ( ps.PageCount);
lb_count.Text = ps.DataSourceCount.ToString();
if (!IsPostBack)
{
for (int i = 1; i <= ps.PageCount; i++)
{
DropDownList1.Items.Add(i.ToString());
}
DropDownList1.SelectedItem.Text = curpage.ToString();
}
lbtn_frist.Enabled = true;
lbtn_up.Enabled = true;
lbtn_down.Enabled = true;
lbtn_last.Enabled = true;
if (curpage == 1)
{
lbtn_frist.Enabled = false;
lbtn_up.Enabled = false;
}
if (curpage == ps.PageCount)
{
lbtn_down.Enabled = false;
lbtn_last.Enabled = false;
}
DataList1.DataSource = ps; //绑定数据源
DataList1.DataKeyField = "ArticleID";
DataList1.DataBind();
}
protected void lbtn_frist_Click(object sender, EventArgs e)
{
lb_currentpage.Text = "1";
dlbind();
}
protected void lbtn_up_Click(object sender, EventArgs e)
{
lb_currentpage.Text = Convert.ToString(Convert.ToInt32(lb_currentpage.Text) - 1);
dlbind();
}
protected void lbtn_down_Click(object sender, EventArgs e)
{
lb_currentpage.Text = Convert.ToString(Convert.ToInt32(lb_currentpage.Text) + 1);
dlbind();
}
protected void lbtn_last_Click(object sender, EventArgs e)
{
lb_currentpage.Text = lb_page.Text;
dlbind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int page = Convert.ToInt32(DropDownList1.SelectedItem.Value);
lb_currentpage.Text = page.ToString();
dlbind();
}
}
<table width="100%"><tr><td>
<asp:LinkButton ID="btnFirst" runat="server" CausesValidation="False" CommandArgument="First" CommandName="Page" Text="首页" OnCommand="PageIndexChanging" />
<asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandArgument="Prev" CommandName="Page" Text="上一页" OnCommand="PageIndexChanging" />
<asp:linkbutton ID="btnNext" runat="server" CausesValidation="False" CommandArgument="Next" CommandName="Page" Text="下一页" OnCommand="PageIndexChanging" />
<asp:LinkButton ID="btnLast" runat="server" CausesValidation="False" CommandArgument="Last" CommandName="Page" Text="尾页" OnCommand="PageIndexChanging" />
<asp:TextBox ID="txtNewPageIndex" runat="server" Width="50px" Text='0'/>
<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-1" CommandName="Page" Text="GO" OnCommand="PageIndexChanging" />
</td><td align="right">
第 <asp:Label id="lblPageIndex" ForeColor="Red" runat="server" text='' /> 页 /
共 <asp:Label id="lblPageCount" runat="server" ForeColor="Red" text='' /> 页
</td></tr></table>
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageIndexChanging(object sender, CommandEventArgs e)
{
if (e.CommandArgument == "First")
{
page = 1;
}
else if (e.CommandArgument == "Prev")
{
if (page > 1)
page = page - 1;
else
return;
}
else if (e.CommandArgument == "Next")
{
if (page < int.Parse(lblPageCount.Text))
page = page + 1;
else
return;
}
else if (e.CommandArgument == "Last")
{
page = int.Parse(lblPageCount.Text);
}
else if (e.CommandArgument == "-1")
{
//判断用户输入是否为正整型数字
Boolean blage = true;
char[] newpageIndexs = txtNewPageIndex.Text.ToCharArray();
for (int i = 0; i < newpageIndexs.Length; i++)
{
if (!(newpageIndexs[i] >= '0' && newpageIndexs[i] <= '9'))
{
blage = false;
}
}
if (blage)
{
int NewPageIndex = int.Parse(txtNewPageIndex.Text);
if (NewPageIndex >= 1 && NewPageIndex <= int.Parse(lblPageCount.Text))
page = NewPageIndex;
}
else
{
return;
}
}
//重新绑定DataList()
this.Load_DataList();
}