程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 數據列表控件的分頁總結(一)自定義方法分頁和PageDataSource類分頁

ASP.NET 數據列表控件的分頁總結(一)自定義方法分頁和PageDataSource類分頁

編輯:關於ASP.NET

在Asp.net中,提供了三個功能強大的列表控件:GridView、DataList和Repeater控件,但其中只有GridView控件提供分頁功能。雖然DataGrid提供了分頁功能,不過看上去功能有限,但是我們可以通過GridView的一些屬性來獲取狀態以及增加首頁、尾頁功能按鈕。如果在速度效率不是很講究的情況下,由DataGrid自己管理分頁還是不錯的,付出的代價就是要把整個相關數據取出來後再刪選指定頁的數據。好處就是開發速度快,不需要寫分頁的存儲過程。所以若需要追求執行效率,而且數據量比較大的情況下建議使用GridView的自定義分頁功能。若數據量不是很大,需要追求更多的頁面功能和樣式,那麼相對GridView來說,DataList和Repeater控件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控件來顯示數據。現在我采用手動分頁,對這三個控件作一比較。如下:

(1).使用GridView手動分頁。

通過下拉框來控制分頁。

前台代碼:

1<body>
2  <form id="form1" runat="server">
3  <div>
4    <asp:GridView ID="gvShow" runat="server" OnPageIndexChanging="gvShow_PageIndexChanging" AllowPaging="True" PageSize="2">
5    </asp:GridView>
6    <br />
7    &nbsp;</div>
8    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
9    </asp:DropDownList>
10  </form>
11</body>

後台代碼:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
  
public partial class _Default : System.Web.UI.Page
{
  static SqlConnection con;
  static SqlDataAdapter sda;
  static SqlCommand cmd;
  static DataSet ds;
  
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      Bind();
    //記住這句不能丟,否則行號會累加在下拉框中
    DropDownList1.Items.Clear();
    for (int i = 1; i< gvShow.PageCount; i++)
    {
      DropDownList1.Items.Add(i.ToString());
    }
   }
  }
  
  private void Bind()
  {
    //gvShow.AllowPaging = true;
    //gvShow.PageSize = 2;
    gvShow.DataSource =BindData();
    gvShow.DataBind();
  }
  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
  {
    //關鍵代碼
    gvShow.PageIndex = Convert.ToInt32(DropDownList1.SelectedValue)-1;
    Bind();
  }
  protected void gvShow_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
    gvShow.PageIndex = e.NewPageIndex;
    Bind();
  }
  private static void Init()
  {
    //數據庫連接語句
    con = new SqlConnection("Data Source=.;database=數據庫名;uid=用戶ID;pwd=用戶密碼");
    ds = new DataSet();
    try
    {
      con.Open();
    }
    catch
    {
      throw new Exception();
    }
  }
  
  public static DataSet BindData()
  {
    Init();
    string sql = "select * from book";
    try
    {
      sda = new SqlDataAdapter(sql, con);
      sda.Fill(ds, "book");
      return ds;
    }
    catch
    {
      throw new Exception();
    }
  }
  
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved