datalist 分页

nageboy 2010-09-27 08:16:13
实现效果

首页 前一页 1.2.3.4.5 后一页 尾页




解决就结贴
...全文
196 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
微工程 2010-09-28
  • 打赏
  • 举报
回复
如果需要,我给你发邮件
非常简洁有效的分页代码,代码非常少,非常简单。
ZhuZhuYuXiang 2010-09-28
  • 打赏
  • 举报
回复
aspnetpager分页控件
panxiao2009year 2010-09-28
  • 打赏
  • 举报
回复
使用PagedDataSource分页控件吧!
xiangziyanhuang 2010-09-28
  • 打赏
  • 举报
回复
有两种解决方案
1.用分布控件
2.自己编写代码,或做成控件,以方便以后使用
highplayer 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
aspnetpager分页控件

<asp:linkbutton ID=”lkPre” OnCommand=”IndexChanging” CommandArgument=”pre” runat=”server” >PREVIOUS </asp:linkbutton>
<asp:linkbutton ID=”lkNext” OnCommand=”IndexChanging” Comma……
[/Quote]
可以用hiddenbottom来保存值
脾气不坏 2010-09-28
  • 打赏
  • 举报
回复
咱也来个 收藏的

建三个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();
}
}


parverxiao 2010-09-28
  • 打赏
  • 举报
回复
这个非常不错,很完整,保证你满意
http://topic.csdn.net/u/20090318/12/f09965c7-dcbc-4bb3-a0a3-3a8c267e49e0.html
begintransaction 2010-09-28
  • 打赏
  • 举报
回复
用aspnetpager分页控件便可轻松实现
ljs0203 2010-09-28
  • 打赏
  • 举报
回复
开头记得给 lblPageIndex lblPageCount 赋值!

前台代码:

<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();
}



七爷 2010-09-28
  • 打赏
  • 举报
回复
ASPNeterPage控件
leejelen 2010-09-28
  • 打赏
  • 举报
回复
分页控件!
村长_乐 2010-09-28
  • 打赏
  • 举报
回复
用第三方控件AspNetPager
这个就要问7楼了...呵呵!!!
FocusNT 2010-09-28
  • 打赏
  • 举报
回复
直接存储过程分页,要不PagedDataSource也很方便
t330wuxy 2010-09-28
  • 打赏
  • 举报
回复
你用自己写的方法。
sql里边大概是这样的。
假如搜id为20到30的sql
select top 10 * from 表名 where id not in(select top 20 id from 表名 order by id) order by id
myhope88 2010-09-28
  • 打赏
  • 举报
回复
用第三方分页控件吧
马老虎 2010-09-27
  • 打赏
  • 举报
回复
使用 AspNetPager控件。
使用存储过程分页查询!
IHandler 2010-09-27
  • 打赏
  • 举报
回复
webdiyer 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 nageboy 的回复:]
鬼子的项目 用这种控件会不会出现什么问题啊
[/Quote]
不会有什么问题,要是老外的项目用英文版比较好,可以在 http://aspnetpager.codeplex.com下载英文版。
nageboy 2010-09-27
  • 打赏
  • 举报
回复
鬼子的项目 用这种控件会不会出现什么问题啊
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
<table cellpadding="0" cellspacing="0">
<tr>
<td style="width: 100px">
<asp:Label ID="Label5" runat="server" Font-Size="9pt" Text="当前页为 [ ">
</asp:Label><asp:Label ID="Label7" runat="server" Text="1" Font-Size="9pt"></asp:Label>
<asp:Label ID="Label3" runat="server" Font-Size="9pt" Text=" ]"></asp:Label></td>
<td style="width: 40px">
<asp:LinkButton ID="LinkButton2" runat="server" Font-Size="9pt" Font-Underline="False"
ForeColor="Red" OnClick="LinkButton2_Click">首页</asp:LinkButton></td>
<td style="width: 30px">
<asp:LinkButton ID="LinkButton3" runat="server" Font-Size="9pt" Font-Underline="False"
ForeColor="Red" OnClick="LinkButton3_Click" Width="42px">上一页</asp:LinkButton></td>
<td style="width: 48px">
<asp:LinkButton ID="LinkButton4" runat="server" Font-Size="9pt" Font-Underline="False"
ForeColor="Red" OnClick="LinkButton4_Click" Width="48px">下一页</asp:LinkButton></td>
<td style="width: 49px">
<asp:LinkButton ID="LinkButton5" runat="server" Font-Size="9pt" Font-Underline="False"
ForeColor="Red" OnClick="LinkButton5_Click" Width="29px">尾页</asp:LinkButton></td>
<td align="center" style="width: 118px">
<asp:Label ID="Label10" runat="server" Text="总页为 [ " Font-Size="9pt" Width="52px"></asp:Label>
<asp:Label ID="Label2" runat="server" Font-Size="9pt"></asp:Label>
<asp:Label ID="Label4" runat="server" Font-Size="9pt" Text=" ]"></asp:Label></td>
</tr>
</table>
加载更多回复(4)

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧