repeater分页的问题

luomp3 2012-08-21 09:43:47
HTML,
<div class="list_left_ul_new2">
<ul>
<asp:Repeater ID="rp_new_time" runat="server">
<ItemTemplate>
<li><a href='content.aspx?Id=<%# Eval("Article_ID")%>' title='<%# Eval("Article_Title")%>'><%#Eval("Article_Title")%></a><span><%#Eval("AddTime")%></span></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>

<div class="page"><strong>共有:50文章</strong><a href="#" target="_self">首页</a><a href="#" target="_self">上一页</a><span>1</span><a href="#" target="_self">2</a><a href="#" target="_self">3</a><a href="#" target="_self">4</a><a href="#" target="_self">5</a><a href="#" target="_self">....</a><a href="#" target="_self">下一页</a><a href="#" target="_self">尾页</a>

cs文件,

/// 新闻-按时间排序
SqlDataReader rpnewtime = Artbll.GetDataReader("select Article_ID,Article_Title,AddTime from CB_Article where [BigClassName] ='新闻' order by AddTime desc");
rp_new_time.DataSource = rpnewtime;
rp_new_time.DataBind();


读取绑定了,但是怎么分页呢?
...全文
191 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch00077125 2012-08-21
  • 打赏
  • 举报
回复
同意楼上。
chian_hello2012 2012-08-21
  • 打赏
  • 举报
回复
用AspNetPager 吧,下面是代码:
DataSet ds;
SqlDataAdapter dr;
SqlCommand com;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;database=数据库");
con.Open();
com = new SqlCommand();
com.Connection = con;
com.CommandText = "select count(*) from Employees";
AspNetPager1.AlwaysShow=true;
AspNetPager1.PageSize=15;
AspNetPager1.RecordCount = (int)com.ExecuteScalar();
con.Close();
DataListDataBind();
}
}
private void DataListDataBind()
{
SqlConnection con = new SqlConnection("server=.;uid=sa;database=数据库");
dr = new SqlDataAdapter("select * from Employees", con);
ds = new DataSet();
dr.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "Employees");
DataList1.DataSource = ds.Tables["Employees"];
DataList1.DataBind();

}

protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
DataListDataBind();
}
mizchh 2012-08-21
  • 打赏
  • 举报
回复
如果对Sql存储过程不太熟的话,你可以用杨老师的AspNetPager控件,这个使用起来比较简单。
luomp3 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
你可以数据库分页,
[/Quote]
能详细点吗
shelly 2012-08-21
  • 打赏
  • 举报
回复
你可以数据库分页,
shelly 2012-08-21
  • 打赏
  • 举报
回复
你可以数据库分页,
xy3212158 2012-08-21
  • 打赏
  • 举报
回复
private void dlBind()
{
int curpage = Convert.ToInt32(this.labPage.Text);

PagedDataSource ps = new PagedDataSource();
//创建数据库连接对象
SqlConnection sqlcon = new SqlConnection(strCon);
sqlcon.Open();
string sqlstr = "select a.*,c.* from tContractGoods a ,tContract c where a.fGoodsType=2 and a.fID=c.fID "; //执行数据库命令
//创建填充数据集的适配器
SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);
//创建数据集
DataSet ds = new DataSet();
//填充数据集
MyAdapter.Fill(ds, "tContractGoods");
ps.DataSource = ds.Tables["tContractGoods"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 8;
ps.CurrentPageIndex = curpage - 1;
this.lnkbtnUp.Enabled = true;
this.LinkButton1.Enabled = true;
this.LinkButton2.Enabled = true;
this.LinkButton3.Enabled = true;
if (curpage == 1)
{
this.LinkButton3.Enabled = false; //不显示“第一页”按钮
this.lnkbtnUp.Enabled = false; //不显示“上一页”按钮
}
if (curpage == ps.PageCount)
{
this.LinkButton1.Enabled = false;//不显示“下一页”按钮
this.LinkButton2.Enabled = false;//不显示“最后一页”按钮
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.Repeater3.DataSource = ps;
this.Repeater3.DataBind();
sqlcon.Close();
}
//分页显示第一页数据
protected void LinkButton3_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
this.dlBind();
}
//分页显示上一页数据
protected void lnkebtnup_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.dlBind();
}

//分页显示下一页数据
protected void LinkButton1_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.dlBind();
}
//分页显示最后一页数据
protected void LinkButton2_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.dlBind();
}

前段时间刚做好的分页,希望搂主有用。
aa405511071 2012-08-21
  • 打赏
  • 举报
回复

PagedDataSource pds = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
ShenHe = !Request.QueryString["ShenHe"].ToString().Equals("Yes");
State = Request.QueryString["State"].ToString().Equals("2");
if (!IsPostBack)
{
int maxPage = 0;
ViewState["maxPage"] = maxPage.ToString();
this.lblCurrentPage.Text = "1";
BindInfoType();
BindInfoDetails();
}
}

protected void lbtnFirstPage_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = "1";
pds.CurrentPageIndex = 1;
this.BindInfoDetails();
}
protected void lbtnPageUp_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) - 1);
this.BindInfoDetails();

}
protected void lbtnNextPage_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) + 1);
this.BindInfoDetails();
}
protected void lbtnLastPage_Click(object sender, EventArgs e)
{
string maxPage = ViewState["maxPage"].ToString();
this.lblCurrentPage.Text = maxPage;
this.lbtnLastPage.Enabled = false;
this.lbtnNextPage.Enabled = false;
this.lbtnPageUp.Enabled = true;
this.lbtnFirstPage.Enabled = true;
this.BindInfoDetails();
}
protected void lbtnResponse_Click(object sender, EventArgs e)
{
if (txtPageIndex.Text.Trim() == "")
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请输入页数!');</script>");
}
else
{
this.lblCurrentPage.Text = txtPageIndex.Text;
this.BindInfoDetails();
}

}
#region 分页方法
/// <summary>
/// 分页方法
/// </summary>
private void BindInfoDetails()
{
int curPage = Convert.ToInt32(this.lblCurrentPage.Text);
pds.DataSource = QueryBuilder().DefaultView;
pds.AllowPaging = true;
pds.CurrentPageIndex = curPage - 1;
pds.PageSize = 12;
lblCount.Text = pds.DataSourceCount.ToString();
lblCountPage.Text = pds.PageCount.ToString();
ViewState["maxPage"] = lblCountPage.Text;
if (curPage == 1)
{
this.lbtnFirstPage.Enabled = false;
this.lbtnPageUp.Enabled = false;
}
else
{
this.lbtnFirstPage.Enabled = true;
this.lbtnPageUp.Enabled = true;
}
if (curPage == pds.PageCount)
{
this.lbtnNextPage.Enabled = false;
this.lbtnLastPage.Enabled = false;
}
else
{
this.lbtnNextPage.Enabled = true;
this.lbtnLastPage.Enabled = true;
}
rptInfoDetails.DataSource = pds;
rptInfoDetails.DataBind();
}
#endregion
SallyAngela 2012-08-21
  • 打赏
  • 举报
回复
PageDataSource分页可参考http://513394217.blog.163.com/blog/static/10979118620097811449598/
SallyAngela 2012-08-21
  • 打赏
  • 举报
回复
创建PageDataSource对象
进行分页,举例:
PagedDataSource pds = new PagedDataSource();
pds.DataSource = GetDataSet(sql).DefaultView;
pds.AllowPaging = true;
pds.PageSize = PageSize;
pds.CurrentPageIndex = currentPage - 1;

yp19910928 2012-08-21
  • 打赏
  • 举报
回复
用AspNetPager这个
szjarvis 2012-08-21
  • 打赏
  • 举报
回复
Rpt_Tr.DataSource = sjList.Skip((PageNum - 1) * NumPerPage).Take(NumPerPage);

sjList是一个List,可换DataTAble;
pageNum是当前页码;
NumPerPage是每页显示的条数;

前台链接去改变页码即可。
WaHaHa1110kangkang 2012-08-21
  • 打赏
  • 举报
回复
5楼正解

62,266

社区成员

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

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

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

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