asp.net分頁控制元件AspNetPager的使用,使用傳統分頁和儲存過程分頁

iDotNetSpace發表於2010-04-23

AspNetPager比較重要的幾個屬性

CurrentPageIndex    獲取或設定當前顯示頁的索引。

PageSize   獲取或設定每頁顯示的項數。

PageCount   獲取所有要分頁的記錄需要的總頁數。

CustomInfoHTML   獲取或設定在顯示在使用者自定義資訊區的使用者自定義HTML文字內容。

FirstPageText   獲取或設定為第一頁按鈕顯示的文字。

LastPageText   獲取或設定為最後一頁按鈕顯示的文字。

PrevPageText   獲取或設定為上一頁按鈕顯示的文字。

RecordCount    獲取或設定需要分頁的所有記錄的總數。

AlwaysShow    獲取或設定一個值,該值指定是否總是顯示AspNetPager分頁按件,即使要分頁的資料只有一頁。

ShowPageIndex   獲取或設定一個值,該值指示是否在頁導航元素中顯示頁索引數值按鈕。

ShowPrevNext   獲取或設定一個值,該值指示是否在頁導航元素中顯示上一頁和下一頁按鈕。

UrlPaging   獲取或設定是否啟用url來傳遞分頁資訊。

 

1.aspnetpager使用傳統方式分頁

使用Repeater控制元件和AspNetPager控制元件實現傳統分頁,

 

private void BindRepeater()
{
    string sql = "select * from tb_Roles";//自定義的SQL語句
    int recordcount;
    SqlCommand cmd = new SqlCommand(sql, GetConnection());
    cmd.CommandType = CommandType.Text;
    SqlDataAdapter ada = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    int startRow = (this.AspNetPager1.CurrentPageIndex - 1) * this.AspNetPager1.PageSize;
    ada.Fill(ds, startRow, this.AspNetPager1.PageSize, "table");
    recordcount = GetPageRecord(sql);
    this.AspNetPager1.RecordCount = recordcount;
    this.Repeater1.DataSource = ds;
    this.Repeater1.DataBind();
}

另外在AspNetPager分頁控制元件PageChanged事件中繫結。

protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
    this.BindRepeater();
}

另外獲取總記錄數的方法

public int GetPageRecord(string sql)
{
    sql = System.Text.RegularExpressions.Regex.Replace(sql, "ORDER BY.*", "");
    sql = "select count(*) from (" + sql + ") as temp";
    SqlCommand cmd = new SqlCommand(sql, GetConnection());
    cmd.Connection.Open();
    int recordcount = (int)cmd.ExecuteScalar();
    cmd.Connection.Close();
    return recordcount;
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-660571/,如需轉載,請註明出處,否則將追究法律責任。

相關文章