欢迎光临
我们一直在努力

Repeater显示数据的例子,带分页-ASP教程,数据库相关

建站超值云服务器,限时71元/月

 

下面是个repeater显示数据分页的例子
我在做时候遇到的问题给大家提一下刚开始我使用datareader做数据源,是不行,后才换dataset
在设置分页的时候一定要搞清楚当前页,如果你把当前页设置成1,那么他就从第二页显示数据了,因为它的当前页是从0开始的,而我们显示当前页时候是从1开始的
在比较是否达到总页数之前一定要先也给ps设置数据源,我就是先用ps.currentpageindex==ps.pagecount-1检查是否在最后一页,然后再ps.datasource=ds.tables["authors"].defaultview;设置数据源的,结果分页一直有问题.
呵呵,这几个问题搞了我半天。可能是我太菜了吧,学.net还没多久呢。

using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.data.sqlclient;
namespace test
{
 /// <summary>
 /// repeater 的摘要说明。
 /// </summary>
 public class repeater : system.web.ui.page
 {
  protected system.web.ui.webcontrols.panel panel1;
  protected system.web.ui.webcontrols.label label1;
  protected system.web.ui.webcontrols.label lbcurpage;
  protected system.web.ui.webcontrols.button button1;
  protected system.web.ui.webcontrols.button button2;
  protected system.web.ui.webcontrols.repeater repeater1;
 
  private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!this.ispostback)
   {
    this.lbcurpage.text=”1″;
    this.bindtorepeater();
   }
  }
  private void bindtorepeater()
  {
   sqlconnection con=new sqlconnection(“data source=.;database=pubs;uid=sa;pwd=123a456b”);
//   sqlcommand cmd=new sqlcommand(“select * from authors”,con);
//   con.open();
//   sqldatareader dr;
//   dr=cmd.executereader();
   sqldataadapter da=new sqldataadapter(“select * from authors”,con);
   dataset ds=new dataset();
   da.fill(ds,”authors”);
   pageddatasource ps=new pageddatasource();
   ps.allowpaging=true;
   ps.pagesize=5;
   this.repeater1.datasource=ps;
   ps.currentpageindex=convert.toint32(this.lbcurpage.text)-1;
   ps.datasource=ds.tables[“authors”].defaultview;
   this.button1.enabled=true;
   this.button2.enabled=true;
   if(ps.currentpageindex==0)
   {
    this.button1.enabled=false;
   }   
   if(ps.currentpageindex==ps.pagecount-1)
   {
    this.button2.enabled=false;
   }
   this.repeater1.databind();
  }

  #region web 窗体设计器生成的代码
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 该调用是 asp.net web 窗体设计器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 – 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void initializecomponent()
  {   
   this.button1.click += new system.eventhandler(this.button1_click);
   this.button2.click += new system.eventhandler(this.button2_click);
   this.load += new system.eventhandler(this.page_load);

  }
  #endregion

  private void button1_click(object sender, system.eventargs e)
  {
   this.lbcurpage.text=convert.tostring(convert.toint32(this.lbcurpage.text)-1);
   this.bindtorepeater();
  }

  private void button2_click(object sender, system.eventargs e)
  {
   this.lbcurpage.text=convert.tostring(convert.toint32(this.lbcurpage.text)+1);
   this.bindtorepeater();
  }
 }
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Repeater显示数据的例子,带分页-ASP教程,数据库相关
分享到: 更多 (0)