<
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;
}
}
|