Repeater分页

小豪 2011-12-22 11:35:07
页面不能正确显示页面条数
demo如下:

<div id="msglist">
<asp:Repeater ID="Rep" OnItemDataBound="RowItemDataBound" runat="server">
<ItemTemplate>
<table class="tablestyle">
<tr>
<td class="lf">
<ul>
<li><a href="#"><img src='<%#Eval("UserImage") %>' alt="0"/></a></li>
<li><em><%#Eval("UserName") %></em></li>
<li>(<%#Eval("UserName") %>)</li>
<li>等级:★★★★★</li>
<li>结贴率:100%</li>
</ul>
</td>
<td class="rw">
<div class="fbart">发表于:<%#Eval("UserTime", "{0:yyyy-M-dd HH:mm:ss}")%><em>11</em></div>
<div class="msgfont"><%#Eval("UserMessage") %></div>
<div class="fdart"><span class='<%#Eval("ID") %>'><a href="#" class="btndelete">删除</a></span></div>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
<div id="page">
<asp:LinkButton ID="lnkbtnFrist" runat="server" OnClick="lnkbtnFrist_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="lnkbtnPre_Click">上一页</asp:LinkButton>
<asp:Label ID="labtotal" runat="server"></asp:Label>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click">尾页</asp:LinkButton>
跳转到第<asp:DropDownList ID="CurrentPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> </asp:DropDownList>页</div>
</div>


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MessageList();
}
}
PagedDataSource pg = new PagedDataSource();//创建分页控件对象
public void MessageList()
{
string sql = "select * from T_BBS order by usertime desc";
DataTable dt = SqlHelper.ExcuteSqlReturnTable(sql);
Rep.DataSource = dt;
Rep.DataBind();
CurrentPage.Items.Clear();
pg.DataSource = dt.DefaultView;
pg.AllowPaging = true;//启用分页
pg.PageSize = 2;//页面条数
for (int i = 1; i <= pg.PageCount; i++)
{
CurrentPage.Items.Add(i.ToString());
}
CurrentPage.SelectedIndex = pg.CurrentPageIndex;
}
protected void RowItemDataBound(object sender, RepeaterItemEventArgs e)
{
labtotal.Text = string.Format("当前第{0}页/总共{1}页", pg.CurrentPageIndex + 1, pg.PageCount);
}
//下拉列表
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.pg.CurrentPageIndex = this.CurrentPage.SelectedIndex;
MessageList();
}
// 首页
protected void lnkbtnFrist_Click(object sender, EventArgs e)
{
this.pg.CurrentPageIndex = 0;
MessageList();
}
//上页
protected void lnkbtnPre_Click(object sender, EventArgs e)
{
if (this.pg.CurrentPageIndex > 0)
{
this.pg.CurrentPageIndex = this.pg.CurrentPageIndex - 1;
MessageList();
}

}
//下页
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
if (this.pg.CurrentPageIndex < this.pg.PageCount)
{
this.pg.CurrentPageIndex = this.pg.CurrentPageIndex - 1;
MessageList();
}
}
//尾页
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
this.pg.CurrentPageIndex = this.pg.PageCount;
MessageList();
}
...全文
189 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huijunliang 2011-12-23
  • 打赏
  • 举报
回复
PagedDataSource pg = new PagedDataSource();//创建分页控件对象
public void MessageList()
{
string sql = "select * from T_BBS order by usertime desc";
DataTable dt = SqlHelper.ExcuteSqlReturnTable(sql);
Rep.DataSource = dt; //不应该在这里绑定 Rep.DataBind();
CurrentPage.Items.Clear();
pg.DataSource = dt.DefaultView;
pg.AllowPaging = true;//启用分页

PagedDataSource 不是这样用的。

示例:

DataView dv = ds.Tables[0].DefaultView;
PagedDataSource Pds = new PagedDataSource();
Pds.DataSource = dv;
Pds.AllowPaging = true;
Pds.PageSize = 10;
int TotalCount = Pds.PageCount;
int CurrPage;
//这里就可以通过各种方式递交页面索引
CurrPage = Request.QueryString["Page"];
//最后再绑定
//DataList和Repeater都可
DataList1.DataSource = Pds;
DataList1.DataBind();


mingl11 2011-12-23
  • 打赏
  • 举报
回复
楼主自己写分页的呀,呵呵 ,还是用现成的比较方便。。。aspnetpager
ycproc 2011-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]

结合aspnetpager 实现
http://topic.csdn.net/u/20110218/16/4f9e5486-f3e3-4db7-8fc5-b3cd104a6174.html
[/Quote]

建议使用 aspnetpager 你那个分页也太鸡肋了
wuyq11 2011-12-23
  • 打赏
  • 举报
回复
Calm2049 2011-12-23
  • 打赏
  • 举报
回复
用AspNetPager吧
愚知 2011-12-23
  • 打赏
  • 举报
回复

List<myWeb.Model.tbl_Nav> listCompany = bll_Nav.GetModelList("");
AspNetPager1.RecordCount = listCompany.Count;
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.PageSize = AspNetPager1.PageSize;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.DataSource = listCompany;
Repeater1.DataSource = pds;
Repeater1.DataBind();

AspNetPager
csover8 2011-12-22
  • 打赏
  • 举报
回复
不能正确显示,能说明白点吗?

62,039

社区成员

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

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

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

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