ASPNETPager常用屬性
建議去封裝好,然後調用這樣比較容易
<webdiyer:aspnetpager id="AspNetPager1" runat="server"
alwaysshow="True"
PageSize="5"
custominfosectionwidth="20%"
custominfotextalign="Right"
firstpagetext="第一頁"
horizontalalign="Left"
lastpagetext="末一頁"
navigationbuttontype="Image"
nextpagetext="後一頁"
pageindexboxtype="TextBox"
pagingbuttonspacing="8px"
prevpagetext="前一頁"
showcustominfosection="Right"
showpageindexbox="Always"
textafterpageindexbox="頁"
UrlPaging="true"
textbeforepageindexbox="跳到第"
width="97%"
onpagechanged="AspNetPager1_PageChanged">
</webdiyer:aspnetpager>
alwaysshow:總是顯示分頁控件;
PageSize:指定每頁顯示的記錄數;
custominfosectionwidth:用戶自定義信息區的寬度;
custominfotextalign:用戶自定義信息區的對齊方式;
firstpagetext:第一頁按鈕上顯示的文本;
horizontalalign:內容水平對齊方式;
lastpagetext:最後頁按鈕上顯示的文本;
navigationbuttontype:第一頁、下一頁、最後一頁按鈕的類型;
nextpagetext:下一頁按鈕上顯示的文本;
pageindexboxtype:指示頁索引框的顯示類型:有TextBOX和dropdownlist兩種;
pagingbuttonspacing:導航頁按鈕的間距;
prevpagetext:上一頁按鈕的顯示的文本;
showcustominfosection:顯示當前頁和總頁信息,默認爲不顯示,值爲LEFT時將顯示在頁索引前,爲right時顯示在頁索引後;
showpageindexbox:指定頁索引文本框或下拉框的顯示方式;
textafterpageindexbox:指定頁索引文本框或下拉框後的文本;
UrlPaging:是夠使用URL傳遞分頁的方式來分頁;
textbeforepageindexbox:指定頁索引文本框或下拉框前面顯示的文本;
width:該控件的寬度;
CustomInfoHTML:指定要顯示在用戶自定義信息區的用戶自定義HTML信息文本
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Bind();
}
private void Bind()
{
int pageindex = 1;
int pagenum = AspNetPager1.PageSize;
if (Request["page"] != null)
{
pageindex =Convert.ToInt32(Request["page"]);
}
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString ());
SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
SqlDataAdapter sda = new SqlDataAdapter("select top (@pagenum) * from pagetest where id not in (select top (@pagenum*(@pageindex-1)) id from pagetest)", con);
sda.SelectCommand.Parameters.AddWithValue("pagenum",pagenum);
sda.SelectCommand.Parameters.AddWithValue("pageindex",pageindex);
sda.Fill(ds);
SqlCommand cmd = new SqlCommand("select count(*) from pagetest", con1);
con1.Open();
AspNetPager1.RecordCount =Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
AspNetPager1.CustomInfoHTML = "共" + AspNetPager1.RecordCount + "條記錄 " + AspNetPager1.CurrentPageIndex + "/" + AspNetPager1.PageCount;
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
Bind();
}
}
深入分析CurrentPageIndex、RecordCount、 PageCount、 PageSize:
pagecount:
public int PageCount
{
get
{
if (this.RecordCount == 0)
{
return 1;
}
return (int) Math.Ceiling((double) (((double) this.RecordCount) / ((double) this.PageSize)));
}
}
recordcount:
public int RecordCount
{
get
{
if (this.cloneFrom != null)
{
return this.cloneFrom.RecordCount;
}
object obj2 = this.ViewState["Recordcount"];
if (obj2 != null)
{
return (int) obj2;
}
return 0;
}
set
{
this.ViewState["Recordcount"] = value;
}
}
CurrentPageIndex:
public int CurrentPageIndex
{
get
{
if (this.cloneFrom != null)
{
return this.cloneFrom.CurrentPageIndex;
}
object obj2 = this.ViewState["CurrentPageIndex"];
int num = (obj2 == null) ? 1 : ((int) obj2);
if ((num > this.PageCount) && (this.PageCount > 0))
{
return this.PageCount;
}
if (num < 1)
{
return 1;
}
return num;
}
set
{
int pageCount = value;
if (pageCount < 1)
{
pageCount = 1;
}
else if (pageCount > this.PageCount)
{
pageCount = this.PageCount;
}
this.ViewState["CurrentPageIndex"] = pageCount;
}
}
PageSize:
public int PageSize
{
get
{
int num;
if ((!string.IsNullOrEmpty(this.UrlPageSizeName) && !base.DesignMode) && (int.TryParse(this.Page.Request.QueryString[this.UrlPageSizeName], out num) && (num > 0)))
{
return num;
}
if (this.cloneFrom != null)
{
return this.cloneFrom.PageSize;
}
object obj2 = this.ViewState["PageSize"];
if (obj2 != null)
{
return (int) obj2;
}
return 10;
}
set
{
this.ViewState["PageSize"] = value;
}
}
AlwaysShow
獲取或設置一個值,該值指定是否總是顯示AspNetPager分頁按件,即使要分頁的數據只有一頁。
CurrentPageButtonPosition
當前頁數字按鈕在所有數字分頁按鈕中的位置,可選值爲:Beginning(最前)、End(最後)、Center(居中)和Fixed(默認固定)
CurrentPageIndex
獲取或設置當前顯示頁的索引。
FirstPageText
獲取或設置爲第一頁按鈕顯示的文本。
LastPageText
獲取或設置爲最後一頁按鈕顯示的文本。
NextPageText
獲取或設置爲下一頁按鈕顯示的文本。
PrevPageText
獲取或設置爲上一頁按鈕顯示的文本。
PageSize
獲取或設置每頁顯示的項數。(該值獲取或設置數據呈現控件每次要顯示數據表中的的數據的項數,AspNetPager根據該值和 RecordCount 來計算顯示所有數據需要的總頁數,即 PageCount的值。 )
PageIndexBoxType:
或者或設置頁索引框的顯示類型,可以是允許用戶手工輸入的文本框和只能選擇的下拉框。
MoreButtonType
獲取或設置“更多頁”(...)按鈕的類型,該值僅當PagingButtonType設爲Image時纔有效。
UrlPageIndexName
獲取或設置當啓用Url分頁方式時,在url中表示要傳遞的頁索引的參數的名稱。
UrlPageSizeName
獲取或設置Url中指定每頁顯示記錄數的參數的名稱,或該值不爲空或Url
中該值對應的參數的值大於0,則PageSize屬性將使用該參數的值做爲每頁顯示的記錄數。
UrlPaging
獲取或設置是否啓用url來傳遞分頁信息。
TextAfterPageIndexBox
獲取或設置頁索引頁索引輸入文本框或下拉框後的文本字符串值。
TextBeforePageIndexBox
獲取或設置頁索引頁索引輸入文本框或下拉框前的文本字符串值。
NavigationButtonType
獲取或設置第一頁、上一頁、下一頁和最後一頁按鈕的類型,該值僅當PagingButtonType設爲Image時纔有效。
NavigationToolTipTextFormatString
獲取或設置導航按鈕工具提示文本的格式。
NextPageText
獲取或設置爲下一頁按鈕顯示的文本。
NumericButtonCount
獲取或設置在 AspNetPager 控件的頁導航元素中同時顯示的數值按鈕的數目。
NumericButtonTextFormatString
獲取或設置頁索引數值導航按鈕上文本的顯示格式。
NumericButtonType
獲取或設置頁導航數值按鈕的類型,該值僅當PagingButtonType設爲Image時纔有效。
PageCount
獲取所有要分頁的記錄需要的總頁數。
PageIndexBoxClass
獲取或設置應用於頁索引輸入文本框或下拉框的CSS類名。
PageIndexBoxStyle
獲取或設置頁索引輸入文本框或下拉框的CSS樣式文本。
PageIndexBoxType
PageIndexOutOfRangeErrorMessage
獲取或設置當用戶輸入的頁索引超出範圍(大於最大頁索引或小於最小頁索引)時在客戶端顯示的錯誤信息。
PageSize 獲取或設置每頁顯示的項數。
PagesRemain 獲取當前頁之後未顯示的頁的總數。 PagingButtonLayoutType
指定分頁導航按鈕(數字和上頁、下頁、首頁、尾頁)佈局方式,可以將這些元素包含在<li> 或<span>標籤中以方便應用CSS樣式,默認不包含在任何標籤中。
PagingButtonSpacing
獲取或設置分頁導航按鈕之間的間距。
PagingButtonType
獲取或設置分頁導航按鈕的類型,即使用文字還是圖片。
ShowFirstLast
獲取或設置一個值,該值指示是否在頁導航元素中顯示第一頁和最後一頁按鈕。
ShowNavigationToolTip
獲取或設置一個值,該值批示當鼠標指針懸停在導航按鈕上時是否顯示工具提示。
ShowPageIndex
獲取或設置一個值,該值指示是否在頁導航元素中顯示頁索引數值按鈕。
ShowPageIndexBox ShowPrevNext
獲取或設置一個值,該值指示是否在頁導航元素中顯示上一頁和下一頁按鈕