注册 登录
编程论坛 ASP.NET技术论坛

repeater分页

发布于 2008-06-30 22:02, 960 次点击
我用了一个repeater读取数据,但不知道怎么分页,谁能给我分页的详细代码啊?我实在是不懂分页,找了好多实例看了,还是没懂什么意思。
前台:
<asp:Repeater ID="rpt1" runat="server" >
    <ItemTemplate>
      <table width="777" border="0" cellpadding="0" cellspacing="1" bgcolor="#009900" class="tb">
        <!--DWLayoutTable-->
           <tr>
          <td width="11" rowspan="3" valign="top" bgcolor="#FFFFFF"><!--DWLayoutEmptyCell-->&nbsp;</td>
          <td width="85" rowspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><%#"<img width='70'height='70' src=" + DataBinder . Eval(Container .DataItem ,"logo") + " border=0>"%></td>
          <td  height="78" colspan="3" align="left" valign="top" bgcolor="#FFFFFF">&nbsp;&nbsp;<%# showbody(Eval("leixing").ToString (), Eval("word").ToString(),Eval ("username").ToString ()) %>
          </td> <td width="12" rowspan="3" valign="top" bgcolor="#FFFFFF" style="width: 10px"><!--DWLayoutEmptyCell-->&nbsp;</td>
        </tr>
        <tr>
        
         
        </tr>
        <tr>
          <td align="center" valign="middle" bgcolor="#FFFFFF" style="height: 25px">姓名:<%#DataBinder . Eval(Container .DataItem ,"username")%></td>
         <td height="20" colspan="2" align="left" valign="top" bgcolor="#FFFFFF">id:<%#DataBinder . Eval(Container .DataItem ,"id")%>
         <asp:LinkButton Runat=server CommandName ='<%# DataBinder.Eval(Container.DataItem,"id") %>'  ID="Linkbutton4" OnCommand  ="find_Click">查看回复</asp:LinkButton>
         <asp:LinkButton Runat=server CommandName = '<%# DataBinder.Eval(Container.DataItem,"id") %>'  ID="Linkbutton3" OnCommand  ="reply_Click">回复</asp:LinkButton>
          <asp:LinkButton Runat=server CommandName ='<%# DataBinder.Eval(Container.DataItem,"id") %>'  ID="Linkbutton2" OnCommand  ="del_Click">删除留言</asp:LinkButton>
</td>
      <td align="left" valign="middle" bgcolor="#FFFFFF" style="height: 10px">&nbsp;&nbsp;留言时间:<%# DataBinder .Eval (Container .DataItem ,"createtime") %></td>
      
         
       </tr>
        </table>
        <br>
      </ItemTemplate>
        </asp:Repeater>
 <TABLE id="Table3" cellSpacing="1" cellPadding="1" width="775" border="0">
                    <TR>
                        <TD align="center" style="width: 775px; height: 18px">共&nbsp;<FONT face="宋体"><b><asp:label id="lbTotalPage" runat="server">1</asp:label></b></FONT>&nbsp;页&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<asp:hyperlink id="hlkFirstPage" runat="server">首页</asp:hyperlink>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<asp:hyperlink id="hlkPrevPage" runat="server">上一页</asp:hyperlink>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<asp:hyperlink id="hlkNextPage" runat="server">下一页</asp:hyperlink>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<asp:hyperlink id="hlkLastPage" runat="server">末页</asp:hyperlink>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;第&nbsp;<FONT face="宋体"><b><asp:label id=lbCurrentPage runat="server">1</asp:label></b></FONT>&nbsp;页
                        </TD>
                    </TR>
                </TABLE>
后台:
protected void Page_Load(object sender, EventArgs e)
    {
showInformation();


    }
 private string myconnectionstring = "server=127.0.0.1;uid=sa;pwd=;database=BBS;";
   
    protected void showInformation()
    {

        SqlConnection myconnection = new SqlConnection(myconnectionstring);
        string sql = "select * from content order by id desc";
        SqlCommand mycommand = new SqlCommand(sql, myconnection);
        myconnection.Open();
        SqlDataReader myreader = mycommand.ExecuteReader();
        rpt1.DataSource = myreader;
        rpt1.DataBind();




    }
2 回复
#2
蓝色畅想2008-07-01 00:10
Repeater 分页 希望对你有帮助
1.  放个Label1 两个    Button1 Button2
    在pagLond 事件里
    设成 Label1.Text = "1";  //显示当前页
2. 代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Label1.Text = "1";
            getBangDing();
        }
    }
    private void getBangDing()
    {
        int num = Convert.ToInt32(Label1.Text);
        SqlConnection con = new SqlConnection("连接字符串");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("sql语句", con);
        DataSet set = new DataSet();
        da.Fill(set, "table");

        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = set.Tables["table"].DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = 3;
        int countNum=pds.PageCount;
        pds.CurrentPageIndex = num - 1;
        Button1.Enabled = true;
        Button2.Enabled = true;
        if (num == 1)
        {
            Button1.Enabled = false;
        }
        if (num == countNum)
        {
            Button2.Enabled = false;
        }
        Repeater1.DataSource = pds;
        Repeater1.DataBind();
    }
   protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) -1); ///上一页
        getBangDing();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);///下一页
        getBangDing();
    }

[[it] 本帖最后由 蓝色畅想 于 2008-7-1 00:23 编辑 [/it]]
#3
2008-07-01 11:52
非常谢谢?做出来拉!
1