asp.net Datalist控件实现分页功能

  在.aspx页面里的代码

  

复制代码 代码如下:

  <asp:DataList ID="DataList1" runat="server" Width="976px" Height="745px" BorderWidth="2px" CellPadding="2" CellSpacing="2" RepeatColumns="7" RepeatDirection="Vertical" BorderColor="#666666">

  <ItemTemplate >

  <table >

  <tr>

  <td >

  <a href='<%#"Show.aspx?iname="+Eval("iname")%>'><img src='upimage/<%#DataBinder.Eval(Container.DataItem,"iname") %>' width="120" alt="点击查看大图"/></a>

  </td>

  </tr>

  </table>

  </ItemTemplate>

  </asp:DataList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:S601ConnectionString %>" SelectCommand="SELECT [iname] FROM [Image]" ></asp:SqlDataSource>

  <table style="width: 976px" cellpadding="0" cellspacing="0">

  <tr>

  <td style="width:976px; text-align: right; font-size:12pt; height:25px;">

  <asp:Label ID="Label7" runat="server" Text="当前页码为:"></asp:Label>

  [

  <asp:Label ID="labPage" runat="server" Text="1"></asp:Label>

  ]

  <asp:Label ID="Label6" runat="server" Text="总页码为:"></asp:Label>

  [

  <asp:Label ID="labBackPage" runat="server"></asp:Label>

  ]<asp:LinkButton ID="lnkbtnOne" runat="server" Font-Underline="False" ForeColor="Red"

  OnClick="lnkbtnOne_Click">第一页</asp:LinkButton>

  <asp:LinkButton ID="lnkbtnUp" runat="server" Font-Underline="False" ForeColor="Red"

  OnClick="lnkbtnUp_Click">上一页</asp:LinkButton>

  <asp:LinkButton ID="lnkbtnNext" runat="server" Font-Underline="False" ForeColor="Red"

  OnClick="lnkbtnNext_Click">下一页</asp:LinkButton>

  <asp:LinkButton ID="lnkbtnBack" runat="server" Font-Underline="False" ForeColor="Red"

  OnClick="lnkbtnBack_Click">最后一页</asp:LinkButton>  </td>

  </tr>

  </table>

  在.aspx.cs页面里

  

复制代码 代码如下:

  protected void Page_Load(object sender, EventArgs e)

  {

  dlBind();

  }

  public void dlBind()

  {

  SqlConnection sqlcon;

  string strCon = "Data Source=(local);Database=S601;Uid=sa;Pwd=123456";

  int curpage = Convert.ToInt32(this.labPage.Text);

  PagedDataSource ps = new PagedDataSource();

  sqlcon = new SqlConnection(strCon);

  sqlcon.Open();

  string sqlstr = "SELECT [iname],iid FROM [Image]";

  SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);

  DataSet ds = new DataSet();

  MyAdapter.Fill(ds, "iid");

  ps.DataSource = ds.Tables["iid"].DefaultView;

  ps.AllowPaging = true; //是否可以分页

  ps.PageSize = 35; //显示的数量

  ps.CurrentPageIndex = curpage - 1; //取得当前页的页码

  this.lnkbtnUp.Enabled = true;

  this.lnkbtnNext.Enabled = true;

  this.lnkbtnBack.Enabled = true;

  this.lnkbtnOne.Enabled = true;

  if (curpage == 1)

  {

  this.lnkbtnOne.Enabled = false;//不显示第一页按钮

  this.lnkbtnUp.Enabled = false;//不显示上一页按钮

  }

  if (curpage == ps.PageCount)

  {

  this.lnkbtnNext.Enabled = false;//不显示下一页

  this.lnkbtnBack.Enabled = false;//不显示最后一页

  }

  this.labBackPage.Text = Convert.ToString(ps.PageCount);

  this.DataList1.DataSource = ps;

  this.DataList1.DataKeyField = "iid";

  this.DataList1.DataBind();

  sqlcon.Close();

  }

  protected void lnkbtnOne_Click(object sender, EventArgs e)

  {

  this.labPage.Text = "1";

  this.dlBind();

  }

  protected void lnkbtnUp_Click(object sender, EventArgs e)

  {

  this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);

  this.dlBind();

  }

  protected void lnkbtnNext_Click(object sender, EventArgs e)

  {

  this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);

  this.dlBind();

  }

  protected void lnkbtnBack_Click(object sender, EventArgs e)

  {

  this.labPage.Text = this.labBackPage.Text;

  this.dlBind();

  }