PagedDataSource分页控件

//前台
<form id="form1" runat="server">
   <div>
       &nbsp;<asp:Panel ID="Panel1" runat="server" Height="440px" Width="798px">
           <br />
           Repearter 不能直接分页,给Repeater 改造分页显示<br />
           <br />
           <asp:Label ID="Label1" runat="server" Text="当前页码:"></asp:Label>
           <asp:Label ID="Label2" runat="server"></asp:Label>
           <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上一页" />
           <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="下一页" /><br />
           <br />
       <asp:Repeater ID="Repeater1" runat="server">
           <AlternatingItemTemplate>
               <font color="blue">
                   <%# DataBinder.Eval(Container.DataItem,"personname") %>
                   <%# DataBinder.Eval(Container.DataItem,"personsex") %>
               </font>
               <br />
           </AlternatingItemTemplate>
           <FooterTemplate>
               <h3>
                   页尾</h3>
           </FooterTemplate>
           <HeaderTemplate>
               <h3>
                   页头</h3>
           </HeaderTemplate>
           <ItemTemplate>
               <%# DataBinder.Eval(Container.DataItem,"personname") %>
               <%# DataBinder.Eval(Container.DataItem,"personsex") %>
               <br />
           </ItemTemplate>
           <SeparatorTemplate>
               <hr color="blue" size="1" />
           </SeparatorTemplate>
       </asp:Repeater>
       </asp:Panel>
  
   </div>
   </form>


//后台
protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
       {
           //页面第一次载入时设置页面起始页为第一页.
           this.Label2.Text = "1";
           this.fengye();
       }

         public void fengye()
         {
           int curPage = Convert.ToInt32(this.Label2.Text);
           SqlConnection con = DBtest.createCon();
           SqlDataAdapter sdr = new SqlDataAdapter();
           sdr.SelectCommand = new SqlCommand("select * from person", con);
           DataSet ds = new DataSet();
           sdr.Fill(ds, "emp");         //用数据适配器填充数据集.
           PagedDataSource ps = new PagedDataSource();
          
           ps.DataSource = ds.Tables["emp"].DefaultView;   //视图作为数据源.
          
           //下面设置分页属性
           ps.AllowPaging = true;
           ps.PageSize = 3;
           ps.CurrentPageIndex = curPage - 1;  //起始页从0开始.

           //每次绑定设置按钮为可用状态,
           //再判断是否是第一页或最后一页,若是,则设置相应的按钮为不可用
           this.Button1.Enabled = true;
           this.Button2.Enabled = true;
           if(curPage==1)
           {
               this.Button1.Enabled = false;
           }
           if(curPage==ps.PageCount)
           {
               this.Button2.Enabled = false;
           }

          
           this.Repeater1.DataSource = ps;//这里不再使用ds;改用ps了
           this.Repeater1.DataBind();     
   }
   protected void Button1_Click(object sender, EventArgs e)
   {
       //注意不要丢了 this.fengye();
       //
       this.Label2.Text = Convert.ToString(Convert.ToInt32(this.Label2.Text)-1);
       this.fengye();
   }
   protected void Button2_Click(object sender, EventArgs e)
   {
       this.Label2.Text = Convert.ToString(Convert.ToInt32(this.Label2.Text) + 1);
       this.fengye();
   }


    }

posted @ 2009-10-16 19:02  不帅你砍我  阅读(154)  评论(0)    收藏  举报