<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ import namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
    public void Page_Load(Object sender, EventArgs e)
    {
    string connec = "user id=sa;password=123;initial catalog=SQLStarnew;Server=KEYJOB;Connect TimeOut=120;";
    SqlConnection objConn = new SqlConnection(connec);
    objConn.Open();
    string Sqlstr = "select * from StarName ";
    SqlCommand Command = new SqlCommand(Sqlstr, objConn);
    System.Data.SqlClient.SqlDataAdapter objCommand = new System.Data.SqlClient.SqlDataAdapter(Command);
  DataSet ds=new DataSet();
  objCommand.Fill(ds);  PagedDataSource objPds = new PagedDataSource();
  objPds.DataSource = ds.Tables[0].DefaultView;
  objPds.AllowPaging = true;
  objPds.PageSize = 2;
  int CurPage;
  if (Request.QueryString["Page"] != null)
    CurPage=Convert.ToInt32(Request.QueryString["Page"]);
  else
    CurPage=1;  objPds.CurrentPageIndex = CurPage-1;
  lblCurrentPage.Text = "当前页:" + CurPage.ToString();
  if (!objPds.IsFirstPage)
      lnkfirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
  if (!objPds.IsFirstPage)
    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);  if (!objPds.IsLastPage)
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);  if (!objPds.IsLastPage)
    lnkend.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=????";
  Repeater1.DataSource=objPds;
  Repeater1.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Repeater控件分页的例子</title></head>
<body>
<form id="Form1" method="POST" runat="server">
<div style="padding:5px;background-color:#dedede">
<asp:label ID="lblCurrentPage" runat="server"></asp:label>
  &nbsp;
  <asp:HyperLink ID="lnkfirst" runat="server">首  页</asp:HyperLink>&nbsp;
  <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>&nbsp;
  <asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>&nbsp;
  <asp:HyperLink ID="lnkend" runat="server">末  页</asp:HyperLink>
</div>
<asp:Repeater ID="Repeater1" runat="server">
<Itemtemplate>
<table>
 <tr>
   <td><%# DataBinder.Eval(Container.DataItem,"id".Trim().Replace(">",""))%></td>
   <td><%# DataBinder.Eval(Container.DataItem, "starname".Trim().Replace(">",""))%></td>
   <td><%# DataBinder.Eval(Container.DataItem, "ausername".Trim().Replace(">",""))%></td>
   <td><%# DataBinder.Eval(Container.DataItem, "bpassword".Trim().Replace(">",""))%></td>
  </tr>
</table>
</Itemtemplate>
</asp:Repeater>
</form>
</body>
</html> if (!objPds.IsLastPage)
    lnkend.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=????";
这里如何得到最后一页呢?

解决方案 »

  1.   

    ds.Table[0].Rows.Count就是总数了  /  每页显示多少,这个你控制另外 SqlCommand Command = new SqlCommand(Sqlstr, objConn);
        System.Data.SqlClient.SqlDataAdapter objCommand = new System.Data.SqlClient.SqlDataAdapter(Command);
    这里改改
     SqlDataAdapter da = new SqlDataAdapter(Sqlstr,objConn);
    直接这样就行了,不用开关数据库,记得用完释放
      

  2.   

    public void Page_Load(Object sender, EventArgs e)
        {
        string connec = "user id=sa;password=123;initial catalog=SQLStarnew;Server=KEYJOB;Connect TimeOut=120;";
        SqlConnection objConn = new SqlConnection(connec);
        objConn.Open();
        string Sqlstr = "select * from StarName ";
        SqlDataAdapter objCommand = new SqlDataAdapter(Sqlstr, objConn);
      DataSet ds=new DataSet();
      objCommand.Fill(ds);  PagedDataSource objPds = new PagedDataSource();
      objPds.DataSource = ds.Tables[0].DefaultView;
      objPds.AllowPaging = true;
      int allrecount = ds.Tables[0].Rows.Count;
      objPds.PageSize = 2;
      int allpage = allrecount / objPds.PageSize;
      int CurPage;
      if (Request.QueryString["Page"] != null)
        CurPage=Convert.ToInt32(Request.QueryString["Page"]);
      else
        CurPage=1;  objPds.CurrentPageIndex = CurPage-1;
      lblCurrentPage.Text = "当前页:" + CurPage.ToString();
      if (!objPds.IsFirstPage)
          lnkfirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
      if (!objPds.IsFirstPage)
        lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);  if (!objPds.IsLastPage)
        lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);  if (!objPds.IsLastPage)
          lnkend.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(allpage);
      Repeater1.DataSource=objPds;
      Repeater1.DataBind();错误提示
     说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
    行 21:   int CurPage;
    行 22:   if (Request.QueryString["Page"] != null)
    行 23:     CurPage=Convert.ToInt32(Request.QueryString["Page"]);
    行 24:   else
    行 25:     CurPage=1;
     源文件: e:\net\Default.aspx    行: 23 堆栈跟踪:
      

  3.   

    OK完整的代码!
     public void Page_Load(Object sender, EventArgs e)
        {
        string connec = "user id=sa;password=123;initial catalog=SQLStarnew;Server=KEYJOB;Connect TimeOut=120;";
        SqlConnection objConn = new SqlConnection(connec);
        objConn.Open();
        string Sqlstr = "select * from StarName ";
        SqlDataAdapter objCommand = new SqlDataAdapter(Sqlstr, objConn);
      DataSet ds=new DataSet();
      objCommand.Fill(ds);  PagedDataSource objPds = new PagedDataSource();
      objPds.DataSource = ds.Tables[0].DefaultView;
      objPds.AllowPaging = true;
      int allrecount = ds.Tables[0].Rows.Count;
      objPds.PageSize = 3;
      int allpage = allrecount / objPds.PageSize;
      if (allrecount % objPds.PageSize != 0)
          allpage = allpage + 1;
      else
         allpage = allrecount / objPds.PageSize;
      int CurPage;
      if (Request.QueryString["Page"] != null)
        CurPage=Convert.ToInt32(Request.QueryString["Page"]);
      else
        CurPage=1;  objPds.CurrentPageIndex = CurPage-1;
      lblCurrentPage.Text = "总共"+ allpage +"&nbsp当前页:" + CurPage.ToString();
      if (!objPds.IsFirstPage)
          lnkfirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
      if (!objPds.IsFirstPage)
        lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);  if (!objPds.IsLastPage)
        lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);  if (!objPds.IsLastPage)
          lnkend.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(allpage);
      Repeater1.DataSource=objPds;
      Repeater1.DataBind();
    }
    </script>