repeater控件的分页技术--

 

repeater.aspx.cs内容

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;

namespace commerce
{
 /// <summary>
 /// repeater 的摘要说明。
 /// </summary>
 public class repeater : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Repeater Repeater1;
  protected DbOpen dbopen;
  private PagedDataSource pds;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!Page.IsPostBack)
   {
    if(Request.QueryString["id"]==null)
    {
     BindRepeater(1);
    }
    else
    {
     BindRepeater(Convert.ToInt32(Request.QueryString["id"]));
    }
   }
  }
  private void BindRepeater(int record)
  {
   dbopen=new DbOpen();
   string sql="select * from guige";
   pds=dbopen.GetDb(sql,record);
   this.Repeater1.DataSource=pds;
   this.Repeater1.DataBind();
  }
  public string WriteLink()
  {
   string s=null;
   for(int i=1;i<=pds.PageCount;i++)
   {
    //s+="<a href=repeater.aspx?id="+i.ToString()+">"+i.ToString()+"页</a>&nbsp;";
    s += "<a href=Repeater.aspx?id=" + i.ToString() +
     ">" + i.ToString() + "页</a>&nbsp;";

   }
   return s;
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion
 }
}
2 repeater.aspx内容

<body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <asp:Repeater id="Repeater1" runat="server">
      <ItemTemplate>
        <font color=red>
           编号:<%#DataBinder.Eval(Container.DataItem,"f_id")%>
           <br>名字:<%#DataBinder.Eval(Container.DataItem,"f_specname")%>
           <br>
           备注:<%#DataBinder.Eval(Container.DataItem,"f_spec")%>
        </font>
      </ItemTemplate>
      <AlternatingItemTemplate>
          <font color=RoyalBlue>
           编号:<%#DataBinder.Eval(Container.DataItem,"f_id")%>
           <br>名字:<%#DataBinder.Eval(Container.DataItem,"f_specname")%>
           <br>
           备注:<%#DataBinder.Eval(Container.DataItem,"f_spec")%>
        </font>
      </AlternatingItemTemplate>
      <SeparatorTemplate>
        <hr size="2">
      </SeparatorTemplate>
      <FooterTemplate>
      <br>
      <%#WriteLink()%>
      </FooterTemplate>
   </asp:Repeater>
  </form>
 </body>

3 DbOpen.cs德内容

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
using System.Web.SessionState;

namespace commerce
{
 /// <summary>
 /// DbOpen 的摘要说明。
 /// </summary>
 
 public class DbOpen
 {
  protected PagedDataSource ps;
  public DbOpen()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
   
  }
  public PagedDataSource GetDb(string sql,int record)
  {
   DataTable table=new DataTable();
   using(SqlConnection conn=new SqlConnection((string)System.Web.HttpContext.Current.Session["connstr"]))
   {
    try
    {
     conn.Open();
     SqlDataAdapter sda=new SqlDataAdapter(sql,conn);
     sda.Fill(table);
     ps=new PagedDataSource();
     ps.AllowPaging=true;
     ps.PageSize=5;
     ps.DataSource=table.DefaultView;
     ps.CurrentPageIndex=record - 1;
     return ps;
    }
    catch(Exception ex)
    {
     Console.WriteLine(ex.Message);
     return null;
    }
    finally
    {
     conn.Close();
    }
   }
  }
 }
}
4 global.cs内容

protected void Session_Start(Object sender, EventArgs e)
  {
   Session["connstr"]="workstation id=BDSOFT-GB;user id=sa;initial catalog=bbs;persist security info=True;password==****";


  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值