注销
注销
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
112 随笔 :: 7 文章 :: 18 评论 :: 0 Trackbacks
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
.net摘要(21)
(rss)
3G时代(3)
(rss)
c++(11)
(rss)
JAVA(4)
(rss)
JS(3)
(rss)
TCP/IP(2)
(rss)
开发日志
(rss)
心情随笔
(rss)
数据库摘要(5)
(rss)
阅读摘要(38)
(rss)
随便写写
(rss)
随笔档案
2007年12月 (2)
2007年8月 (1)
2007年7月 (8)
2007年6月 (7)
2007年5月 (7)
2007年1月 (2)
2006年12月 (15)
2006年11月 (40)
2006年10月 (30)
文章分类
.net技术(3)
(rss)
2007公务员(2)
(rss)
JAVA技术
(rss)
汇编
(rss)
英语资料收集(2)
(rss)
文章档案
2007年5月 (1)
2006年10月 (6)
相册
我的相册
搜索
积分与排名
积分 - 80753
排名 - 701
最新评论
1. re: 动态加载DLL
没看懂
--任
2. re: 用C#.NET实现电子邮件客户程序
评论内容较长,点击标题查看
--易勇
3. 请求帮助
朋友能不能把你的代码发送给我一份看看啊!我邮箱:yueshang654@sina.com
--游客
4. c# vs2005 好象不存在 StateObject这个类[未登录]
评论内容较长,点击标题查看
--xy
5. re: JAVA 转意字符
怎样将?替换成?
(第一个是英文状态下的,第二个是中文状态下的) 速回答急用 谢谢了
-- 洋溢
阅读排行榜
1. C#的二进制文件操作(8250)
2. ASCII 码表和字符在C#中的转换方法.(6448)
3. vss教程(3824)
4. ORACLE时间类型(3793)
5. 用C#.NET实现电子邮件客户程序 (3443)
评论排行榜
1. JAVA 转意字符(3)
2. 给中国高校的一封信(上)--李开复(3)
3. 最近的烦恼(2)
4. C#的前途如何?(1)
5. cmpp开发(1)
DEVPAGE
1
//
AspNetPager分页控件源代码:
2
//
版权所有:陕西省吴旗县 Webdiyer(yhaili@21cn.com)(Web site: www.webdiyer.com);
3
//
此源代码仅供学习参考,不得用作任何商业用途;
4
//
若需修改并重新编译该控件,请保留完整的源代码的版权信息!
5
//
有关控件升级及新控件发布信息,请留意 www.webdiyer.com 。
6
//
版本4.3.3
7
//
增强版 (修改自4.3.3版本)
8
//
描述:增加了可自定义每页的记录数。
9
//
modify by liubiqu(liubiqu@sina.com) [
http://www.cnblogs.com/liubiqu
]
10
//
DateTime: 2005-06-10
11
12
using
System;
13
using
System.Collections;
14
using
System.Collections.Specialized;
15
using
System.ComponentModel;
16
using
System.IO;
17
using
System.Text;
18
using
System.Web.UI;
19
using
System.Web.UI.Design.WebControls;
20
using
System.Web.UI.WebControls;
21
22
namespace
EOffice.Components
23
{
24
AspNetPager Server Control
#region
AspNetPager Server Control
25
26
控件说明及示例
#region
控件说明及示例
27
/**/
///
<summary>
28
///
用于ASP.NET Web应用程序中对数据进行分页的的服务器控件。
29
///
</summary>
30
///
<remarks>
不同于DataGrid控件,AspNetPager分页控件本身并不显示任何数据,而只显示页导航元素,数据在页面上的显示方式与该控件无关。该控件可以为DataGrid、DataList、Repeater以及自定义控件进行分页,配合Sql存储过程,分页性能较使用DataGrid分页有明显提升,尤其是当数据量大时性能可提升数倍!
31
///
<p>
AspNetPager 2.0 中新增了通过Url来分页的功能,这使得访问者可以直接输入相应的Url来访问任何页面,并且搜索引擎也可以直接检索每个页面,若使用DataGrid的分页功能,这是无法实现的。
</p>
32
///
<p>
要使用 AspNetPager 分页控件,必须最少指定它的
<see cref="RecordCount"/>
属性,指定并编写
<see cref="PageChanged"/>
事件的处理程序。
33
///
<see cref="RecordCount"/>
属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于
<see cref="PageSize"/>
,则AspNetPager控件不会显示任何内容。
34
///
若未指定并编写
<see cref="PageChanged"/>
事件处理程序,则当用户点击页导航元素或在页索引文本框中手式输入页索引并提交时AspNetPager不会跳转到指定的页。
35
///
AspNetPager控件的分页方法和DataGrid基本相同,即在它的
<see cref="PageChanged"/>
事件处理程序中将传递事件数据的
<see cref="PageChangedEventArgs"/>
的
<see cref="PageChangedEventArgs.NewPageIndex"/>
值赋给 AspNetPager的
<see cref="CurrentPageIndex"/>
属性,然后重新将新的数据与数据显示控件绑定。
</p></remarks>
36
///
<example>
以下示例说明如何用AspNetPager对DataGrid进行分页。
37
///
<code><![CDATA[
38
///
<%@ Page Language="C#"%>
39
///
<%@ Import Namespace="System.Data"%>
40
///
<%@Import Namespace="System.Data.SqlClient"%>
41
///
<%@Import Namespace="System.Configuration"%>
42
///
<%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
43
///
<HTML>
44
///
<HEAD>
45
///
<TITLE>
Welcome to Webdiyer.com
</TITLE>
46
///
<script runat="server">
47
///
SqlConnection conn;
48
///
SqlCommand cmd;
49
///
void Page_Load(object src,EventArgs e)
50
///
{
51
///
conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
52
///
if(!Page.IsPostBack)
53
///
{
54
///
cmd=new SqlCommand("GetNews",conn);
55
///
cmd.CommandType=CommandType.StoredProcedure;
56
///
cmd.Parameters.Add("@pageindex",1);
57
///
cmd.Parameters.Add("@pagesize",1);
58
///
cmd.Parameters.Add("@docount",true);
59
///
conn.Open();
60
///
pager.RecordCount=(int)cmd.ExecuteScalar();
61
///
conn.Close();
62
///
BindData();
63
///
}
64
///
}
65
///
66
///
void BindData()
67
///
{
68
///
cmd=new SqlCommand("GetNews",conn);
69
///
cmd.CommandType=CommandType.StoredProcedure;
70
///
cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);
71
///
cmd.Parameters.Add("@pagesize",pager.PageSize);
72
///
cmd.Parameters.Add("@docount",false);
73
///
conn.Open();
74
///
dataGrid1.DataSource=cmd.ExecuteReader();
75
///
dataGrid1.DataBind();
76
///
conn.Close();
77
///
pager.CustomInfoText="记录总数:
<font color=\"blue\"><b>
"+pager.RecordCount.ToString()+"
</b></font>
";
78
///
pager.CustomInfoText+=" 总页数:
<font color=\"blue\"><b>
"+pager.PageCount.ToString()+"
</b></font>
";
79
///
pager.CustomInfoText+=" 当前页:
<font color=\"red\"><b>
"+pager.CurrentPageIndex.ToString()+"
</b></font>
";
80
///
}
81
///
void ChangePage(object src,PageChangedEventArgs e)
82
///
{
83
///
pager.CurrentPageIndex=e.NewPageIndex;
84
///
BindData();
85
///
}
86
///
</script>
87
///
<meta http-equiv="Content-Language" content="zh-cn">
88
///
<meta http-equiv="content-type" content="text/html;charset=gb2312">
89
///
<META NAME="Generator" CONTENT="EditPlus">
90
///
<META NAME="Author" CONTENT="Webdiyer(yhaili@21cn.com)">
91
///
</HEAD>
92
///
<body>
93
///
<form runat="server" ID="Form1">
94
///
<asp:DataGrid id="dataGrid1" runat="server" />
95
///
96
///
<Webdiyer:AspNetPager id="pager"
97
///
runat="server"
98
///
PageSize="8"
99
///
NumericButtonCount="8"
100
///
ShowCustomInfoSection="left"
101
///
PagingButtonSpacing="0"
102
///
ShowInputBox="always"
103
///
CssClass="mypager"
104
///
HorizontalAlign="right"
105
///
OnPageChanged="ChangePage"
106
///
SubmitButtonText="转到"
107
///
NumericButtonTextFormatString="[{0}]"/>
108
///
109
///
</form>
110
///
</body>
111
///
</HTML>
112
///
]]>
113
///
</code>
114
///
<p>
下面是该示例所用的Sql Server存储过程:
</p>
115
///
<code>
116
///
<![CDATA[
117
///
CREATE procedure GetNews
118
///
(@pagesize int,
119
///
@pageindex int,
120
///
@docount bit)
121
///
as
122
///
set nocount on
123
///
if(@docount=1)
124
///
select count(id) from news
125
///
else
126
///
begin
127
///
declare @indextable table(id int identity(1,1),nid int)
128
///
declare @PageLowerBound int
129
///
declare @PageUpperBound int
130
///
set @PageLowerBound=(@pageindex-1)*@pagesize
131
///
set @PageUpperBound=@PageLowerBound+@pagesize
132
///
set rowcount @PageUpperBound
133
///
insert into @indextable(nid) select id from news order by addtime desc
134
///
select O.id,O.source,O.title,O.addtime from news O,@indextable t where O.id=t.nid
135
///
and t.id>@PageLowerBound and t.id
<=@PageUpperBound order by t.id
136
///
end
137
///
set nocount off
138
///
GO
139
///
]]>
140
///
</code></example>
141
#endregion
142
143
[DefaultProperty(
"
PageSize
"
)]
144
[DefaultEvent(
"
PageChanged
"
)]
145
[ParseChildren(
false
)]
146
[PersistChildren(
false
)]
147
[Description(
"
专用于ASP.Net Web应用程序的分页控件
"
)]
148
[Designer(
typeof
(PagerDesigner))]
149
[ToolboxData(
"
<{0}:AspNetPager runat=server></{0}:AspNetPager>
"
)]
150
public
class
AspNetPager:Panel,INamingContainer,IPostBackEventHandler,IPostBackDataHandler
151
{
152
private
string
cssClassName;
153
private
string
urlPageIndexName
=
"
page
"
;
154
private
string
urlPageSize
=
"
pagesize
"
;
//
TODO:var urlPageSize add by liubiqu 2005-6-10
155
private
bool
urlPaging
=
false
;
156
private
string
inputPageIndex;
157
private
string
selectPageSize;
//
TODO:var selectPageSize add by liubiqu 2005-6-10
158
private
string
currentUrl
=
null
;
159
private
NameValueCollection urlParams
=
null
;
160
161
Properties
#region
Properties
162
163
Navigation Buttons
#region
Navigation Buttons
164
165
/**/
///
<summary>
166
///
获取或设置一个值,该值批示当鼠标指针悬停在导航按钮上时是否显示工具提示。
167
///
</summary>
168
[Browsable(
true
),
169
Category(
"
导航按钮
"
),
170
DefaultValue(
true
),
171
Description(
"
指定当鼠标停留在导航按钮上时,是否显示工具提示
"
)]
172
public
bool
ShowNavigationToolTip
173
{
174
get
175
{
176
object
obj
=
ViewState[
"
ShowNavigationToolTip
"
];
177
return
(obj
==
null
)
?
true
:(
bool
)obj;
178
}
179
set
180
{
181
ViewState[
"
ShowNavigationToolTip
"
]
=
value;
182
}
183
}
184
185
/**/
///
<summary>
186
///
获取或设置导航按钮工具提示文本的格式。
187
///
</summary>
188
[Browsable(
true
),
189
Category(
"
导航按钮
"
),
190
DefaultValue(
"
转到第{0}页
"
),
191
Description(
"
页导航按钮工具提示文本的格式
"
)]
192
public
string
NavigationToolTipTextFormatString
193
{
194
get
195
{
196
object
obj
=
ViewState[
"
NavigationToolTipTextFormatString
"
];
197
return
(obj
==
null
)
?
"
转到第{0}页
"
:(
string
)obj;
198
}
199
set
200
{
201
string
tip
=
value;
202
if
(tip.Trim().Length
<
1
&&
tip.IndexOf(
"
{0}
"
)
<
0
)
203
tip
=
"
{0}
"
;
204
ViewState[
"
NavigationToolTipTextFormatString
"
]
=
tip;
205
}
206
}
207
208
/**/
///
<summary>
209
///
获取或设置一个值,该值指示是否将页索引按钮用中文数字代替。
210
///
</summary>
211
///
<remarks>
212
///
将该值设为true并且未使用图片按钮时,页索引按钮中的数值1、2、3等将会被中文字符一、二、三等代替。
213
///
</remarks>
214
[Browsable(
true
),
215
Category(
"
导航按钮
"
),
216
DefaultValue(
false
),
217
Description(
"
是否将页索引数值按钮用中文数字一、二、三等代替
"
)]
218
public
bool
ChinesePageIndex
219
{
220
get
221
{
222
object
obj
=
ViewState[
"
ChinesePageIndex
"
];
223
return
(obj
==
null
)
?
false
:(
bool
)obj;
224
}
225
set
226
{
227
ViewState[
"
ChinesePageIndex
"
]
=
value;
228
}
229
}
230
231
/**/
///
<summary>
232
///
获取或设置页索引数值导航按钮上文字的显示格式。
233
///
</summary>
234
///
<value>
235
///
字符串,指定页索引数值按钮上文字的显示格式,默认值为
<see cref="String.Empty"/>
,即未设置该属性。
</value>
236
///
<remarks>
237
///
使用NumericButtonTextFormatString属性指定页索引数值按钮的显示格式,如未设置该值时索引按钮文本将会是:1 2 3
,设置该值将改变索引按钮文本的显示格式,
238
///
如将该值设为“[{0}]”则索引文本会显示为:[1] [2] [3]
,将该值设为“-{0}-”则会使索引文本变为:-1- -2- -3-
。
239
///
</remarks>
240
[Browsable(
true
),
241
DefaultValue(
""
),
242
Category(
"
导航按钮
"
),
243
Description(
"
页索引数值按钮上文字的显示格式
"
)]
244
public
string
NumericButtonTextFormatString
245
{
246
get
247
{
248
object
obj
=
ViewState[
"
NumericButtonTextFormatString
"
];
249
return
(obj
==
null
)
?
String.Empty:(
string
)obj;
250
}
251
set
252
{
253
ViewState[
"
NumericButtonTextFormatString
"
]
=
value;
254
}
255
}
256
257
/**/
///
<summary>
258
///
获取或设置分页导航按钮的类型,即使用文字还是图片。
259
///
</summary>
260
///
<remarks>
261
///
要使用图片按钮,您需要准备以下图片:从0到9的十个数值图片(当ShowPageIndex设为true时),第一页、上一页、下一页、最后一页及更多页(
)五个按钮图片(当ShowFirstLast及ShowPrevNext都设为true时),
262
///
若需要使当前页索引的数值按钮不同于别的页索引数值按钮,则还需准备当前页索引的按钮图片;
263
///
若需要使已禁用的第一页、上一页、下一页及最后一页按钮图片不同于正常的按钮图片,则还需准备这四个按钮在禁用状态下的图片;
264
///
<p><b>
图片文件的命名规则如下:
</b></p>
265
///
<p>
从0到9十张数值按钮图片必须命名为“数值+ButtonImageNameExtension+ButtonImageExtension”,其中的ButtonImageNameExtension可以不用设置,
266
///
ButtonImageExtension是图片文件的后缀名,如 .gif或 .jpg等可以在浏览器中显示的任何图片文件类型。如页索引“1”的图片文件可命名为“1.gif”或“1.jpg”,
267
///
当您有两套或更多套图片文件时,可以通过指定ButtonImageNameExtension属性值来区分不同套的图片,如第一套图片可以不用设ButtonImageNameExtension,则图片文件名类似于“1.gif”、“2.gif”等等,而第二套图片则设置ButtonImageNameExtension为“f”,图片文件名类似于“1f.gif”,“2f.gif”等等。
</p>
268
///
<p>
第一页按钮的图片文件名以“first”开头,上一页按钮图片名以“prev”开头,下一页按钮图片名以“next”开头,最后一页按钮图片名以“last”开头,更多页按钮图片名以“more”开头,是否使用ButtonImageNameExtension取决于数值按钮的设置及是否有更多套图片。
</p>
269
///
</remarks>
270
///
<example>
271
///
以下代码片段示例如果使用图片按钮:
272
///
<p>
273
///
<code><![CDATA[
274
///
<Webdiyer:AspNetPager runat="server"
275
///
id="pager1"
276
///
OnPageChanged="ChangePage"
277
///
PagingButtonType="image"
278
///
ImagePath="images"
279
///
ButtonImageNameExtension="n"
280
///
DisabledButtonImageNameExtension="g"
281
///
ButtonImageExtension="gif"
282
///
CpiButtonImageNameExtension="r"
283
///
PagingButtonSpacing=5/>
284
///
]]>
285
///
</code>
286
///
</p>
287
///
</example>
288
[Browsable(
true
),
289
DefaultValue(PagingButtonType.Text),
290
Category(
"
导航按钮
"
),
291
Description(
"
分页导航按钮的类型,是使用文字还是图片
"
)]
292
public
PagingButtonType PagingButtonType
293
{
294
get
295
{
296
object
obj
=
ViewState[
"
PagingButtonType
"
];
297
return
(obj
==
null
)
?
PagingButtonType.Text:(PagingButtonType)obj;
298
}
299
set
300
{
301
ViewState[
"
PagingButtonType
"
]
=
value;
302
}
303
}
304
305
/**/
///
<summary>
306
///
获取或设置页导航数值按钮的类型,该值仅当PagingButtonType设为Image时才有效。
307
///
</summary>
308
///
<remarks>
309
///
当您将PagingButtonType设为Image当又不想让页索引数值按钮使用图片时,可以将该值设为Text,这会使页索引数据按钮使用文本而不是图片按钮。
310
///
</remarks>
311
[Browsable(
true
),
312
DefaultValue(PagingButtonType.Text),
313
Category(
"
导航按钮
"
),
314
Description(
"
页导航数值按钮的类型
"
)]
315
public
PagingButtonType NumericButtonType
316
{
317
get
318
{
319
object
obj
=
ViewState[
"
NumericButtonType
"
];
320
return
(obj
==
null
)
?
PagingButtonType:(PagingButtonType)obj;
321
}
322
set
323
{
324
ViewState[
"
NumericButtonType
"
]
=
value;
325
}
326
}
327
328
/**/
///
<summary>
329
///
获取或设置第一页、上一页、下一页和最后一页按钮的类型,该值仅当PagingButtonType设为Image时才有效。
330
///
</summary>
331
///
<remarks>
332
///
当您将PagingButtonType设为Image但又不想让第一页、下一页、下一页和最后一页按钮使用图片,则可以将该值设为Text,这会使前面的四个按钮使用文本而不是图片按钮。
333
///
</remarks>
334
[Browsable(
true
),
335
Category(
"
导航按钮
"
),
336
DefaultValue(PagingButtonType.Text),
337
Description(
"
第一页、上一页、下一页和最后一页按钮的类型
"
)]
338
public
PagingButtonType NavigationButtonType
339
{
340
get
341
{
342
object
obj
=
ViewState[
"
NavigationButtonType
"
];
343
return
(obj
==
null
)
?
PagingButtonType:(PagingButtonType)obj;
344
}
345
set
346
{
347
ViewState[
"
NavigationButtonType
"
]
=
value;
348
}
349
}
350
351
/**/
///
<summary>
352
///
获取或设置“更多页”(
)按钮的类型,该值仅当PagingButtonType设为Image时才有效。
353
///
</summary>
354
///
<remarks>
355
///
当您将PagingButtonType设为Image但又不想让更多页(
)按钮使用图片时,可以将此值设为Text,这会使更多页按钮使用文本而不是图片按钮。
356
///
</remarks>
357
[Browsable(
true
),
358
Category(
"
导航按钮
"
),
359
DefaultValue(PagingButtonType.Text),
360
Description(
"
“更多页”(
)按钮的类型
"
)]
361
public
PagingButtonType MoreButtonType
362
{
363
get
364
{
365
object
obj
=
ViewState[
"
MoreButtonType
"
];
366
return
(obj
==
null
)
?
PagingButtonType:(PagingButtonType)obj;
367
}
368
set
369
{
370
ViewState[
"
MoreButtonType
"
]
=
value;
371
}
372
}
373
374
/**/
///
<summary>
375
///
获取或设置分页导航按钮之间的间距。
376
///
</summary>
377
[Browsable(
true
),
378
Category(
"
导航按钮
"
),
379
DefaultValue(
typeof
(Unit),
"
5px
"
),
380
Description(
"
分页导航按钮之间的间距
"
)]
381
public
Unit PagingButtonSpacing
382
{
383
get
384
{
385
object
obj
=
ViewState[
"
PagingButtonSpacing
"
];
386
return
(obj
==
null
)
?
Unit.Pixel(
5
):(Unit.Parse(obj.ToString()));
387
}
388
set
389
{
390
ViewState[
"
PagingButtonSpacing
"
]
=
value;
391
}
392
}
393
394
/**/
///
<summary>
395
///
获取或设置一个值,该值指示是否在页导航元素中显示第一页和最后一页按钮。
396
///
</summary>
397
[Browsable(
true
),
398
Description(
"
是否在页导航元素中显示第一页和最后一页按钮
"
),
399
Category(
"
导航按钮
"
),
400
DefaultValue(
true
)]
401
public
bool
ShowFirstLast
402
{
403
get
404
{
405
object
obj
=
ViewState[
"
ShowFirstLast
"
];
406
return
(obj
==
null
)
?
true
:(
bool
)obj;
407
}
408
set
{ViewState[
"
ShowFirstLast
"
]
=
value;}
409
}
410
411
/**/
///
<summary>
412
///
获取或设置一个值,该值指示是否在页导航元素中显示上一页和下一页按钮。
413
///
</summary>
414
[Browsable(
true
),
415
Description(
"
是否在页导航元素中显示上一页和下一页按钮
"
),
416
Category(
"
导航按钮
"
),
417
DefaultValue(
true
)]
418
public
bool
ShowPrevNext
419
{
420
get
421
{
422
object
obj
=
ViewState[
"
ShowPrevNext
"
];
423
return
(obj
==
null
)
?
true
:(
bool
)obj;
424
}
425
set
{ViewState[
"
ShowPrevNext
"
]
=
value;}
426
}
427
428
/**/
///
<summary>
429
///
获取或设置一个值,该值指示是否在页导航元素中显示页索引数值按钮。
430
///
</summary>
431
[Browsable(
true
),
432
Description(
"
是否在页导航元素中显示数值按钮
"
),
433
Category(
"
导航按钮
"
),
434
DefaultValue(
true
)]
435
public
bool
ShowPageIndex
436
{
437
get
438
{
439
object
obj
=
ViewState[
"
ShowPageIndex
"
];
440
return
(obj
==
null
)
?
true
:(
bool
)obj;
441
}
442
set
{ViewState[
"
ShowPageIndex
"
]
=
value;}
443
}
444
445
/**/
///
<summary>
446
///
获取或设置为第一页按钮显示的文本。
447
///
</summary>
448
[Browsable(
true
),
449
Description(
"
第一页按钮上显示的文本
"
),
450
Category(
"
导航按钮
"
),
451
DefaultValue(
"
<font face=\
"
webdings\
"
>9</font>
"
)]
452
public
string
FirstPageText
453
{
454
get
455
{
456
object
obj
=
ViewState[
"
FirstPageText
"
];
457
return
(obj
==
null
)
?
"
<font face=\
"
webdings\
"
>9</font>
"
:(
string
)obj;
458
}
459
set
{ViewState[
"
FirstPageText
"
]
=
value;}
460
}
461
462
/**/
///
<summary>
463
///
获取或设置为上一页按钮显示的文本。
464
///
</summary>
465
[Browsable(
true
),
466
Description(
"
上一页按钮上显示的文本
"
),
467
Category(
"
导航按钮
"
),
468
DefaultValue(
"
<font face=\
"
webdings\
"
>3</font>
"
)]
469
public
string
PrevPageText
470
{
471
get
472
{
473
object
obj
=
ViewState[
"
PrevPageText
"
];
474
return
(obj
==
null
)
?
"
<font face=\
"
webdings\
"
>3</font>
"
:(
string
)obj;
475
}
476
set
{ViewState[
"
PrevPageText
"
]
=
value;}
477
}
478
479
/**/
///
<summary>
480
///
获取或设置为下一页按钮显示的文本。
481
///
</summary>
482
[Browsable(
true
),
483
Description(
"
下一页按钮上显示的文本
"
),
484
Category(
"
导航按钮
"
),
485
DefaultValue(
"
<font face=\
"
webdings\
"
>4</font>
"
)]
486
public
string
NextPageText
487
{
488
get
489
{
490
object
obj
=
ViewState[
"
NextPageText
"
];
491
return
(obj
==
null
)
?
"
<font face=\
"
webdings\
"
>4</font>
"
:(
string
)obj;
492
}
493
set
{ViewState[
"
NextPageText
"
]
=
value;}
494
}
495
496
/**/
///
<summary>
497
///
获取或设置为最后一页按钮显示的文本。
498
///
</summary>
499
[Browsable(
true
),
500
Description(
"
最后一页按钮上显示的文本
"
),
501
Category(
"
导航按钮
"
),
502
DefaultValue(
"
<font face=\
"
webdings\
"
>:</font>
"
)]
503
public
string
LastPageText
504
{
505
get
506
{
507
object
obj
=
ViewState[
"
LastPageText
"
];
508
return
(obj
==
null
)
?
"
<font face=\
"
webdings\
"
>:</font>
"
:(
string
)obj;
509
}
510
set
{ViewState[
"
LastPageText
"
]
=
value;}
511
}
512
513
/**/
///
<summary>
514
///
获取或设置在
<see cref="AspNetPager"/>
控件的页导航元素中同时显示的数值按钮的数目。
515
///
</summary>
516
[Browsable(
true
),
517
Description(
"
要显示的页索引数值按钮的数目
"
),
518
Category(
"
导航按钮
"
),
519
DefaultValue(
10
)]
520
public
int
NumericButtonCount
521
{
522
get
523
{
524
object
obj
=
ViewState[
"
NumericButtonCount
"
];
525
return
(obj
==
null
)
?
10
:(
int
)obj;
526
}
527
set
{ViewState[
"
NumericButtonCount
"
]
=
value;}
528
}
529
530
/**/
///
<summary>
531
///
获取或设置一个值,该值指定是否显示已禁用的按钮。
532
///
</summary>
533
///
<remarks>
534
///
该值用来指定是否显示已禁用的分页导航按钮,当当前页为第一页时,第一页和上一页按钮将被禁用,当当前页为最后一页时,下一页和最后一页按钮将被禁用,被禁用的按钮没有链接,在按钮上点击也不会有任何作用。
535
///
</remarks>
536
[Browsable(
true
),
537
Category(
"
导航按钮
"
),
538
Description(
"
是否显示已禁用的按钮
"
),
539
DefaultValue(
true
)]
540
public
bool
ShowDisabledButtons
541
{
542
get
543
{
544
object
obj
=
ViewState[
"
ShowDisabledButtons
"
];
545
return
(obj
==
null
)
?
true
:(
bool
)obj;
546
}
547
set
548
{
549
ViewState[
"
ShowDisabledButtons
"
]
=
value;
550
}
551
}
552
553
#endregion
554
555
Image Buttons
#region
Image Buttons
556
557
/**/
///
<summary>
558
///
获取或设置当使用图片按钮时,图片文件的路径。
559
///
</summary>
560
[Browsable(
true
),
561
Category(
"
图片按钮
"
),
562
Description(
"
当使用图片按钮时,指定图片文件的路径
"
),
563
DefaultValue(
null
)]
564
public
string
ImagePath
565
{
566
get
567
{
568
string
imgPath
=
(
string
)ViewState[
"
ImagePath
"
];
569
if
(imgPath
!=
null
)
570
imgPath
=
this
.ResolveUrl(imgPath);
571
return
imgPath;
572
}
573
set
574
{
575
string
imgPath
=
value.Trim().Replace(
"
\\
"
,
"
/
"
);
576
ViewState[
"
ImagePath
"
]
=
(imgPath.EndsWith(
"
/
"
))
?
imgPath:imgPath
+
"
/
"
;
577
}
578
}
579
580
/**/
///
<summary>
581
///
获取或设置当使用图片按钮时,图片的类型,如gif或jpg,该值即图片文件的后缀名。
582
///
</summary>
583
[Browsable(
true
),
584
Category(
"
图片按钮
"
),
585
DefaultValue(
"
.gif
"
),
586
Description(
"
当使用图片按钮时,图片的类型,如gif或jpg,该值即图片文件的后缀名
"
)]
587
public
string
ButtonImageExtension
588
{
589
get
590
{
591
object
obj
=
ViewState[
"
ButtonImageExtension
"
];
592
return
(obj
==
null
)
?
"
.gif
"
:(
string
)obj;
593
}
594
set
595
{
596
string
ext
=
value.Trim();
597
ViewState[
"
ButtonImageExtension
"
]
=
(ext.StartsWith(
"
.
"
))
?
ext:(
"
.
"
+
ext);
598
}
599
}
600
601
/**/
///
<summary>
602
///
获取或设置自定义图片文件名的后缀字符串,以区分不同类型的按钮图片。
603
///
</summary>
604
///
<remarks><note>
注意:
</note>
该值不是文件后缀名,而是为区分不同的图片文件而在图片名中加入的字符串,如:
605
///
当前有两套按钮图片,其中一套中的“1”的图片名可为“1f.gif”,另一套中的“1”的图片名可起为“1n.gif”,其中的f和n即为ButtonImageNameExtension。
</remarks>
606
[Browsable(
true
),
607
DefaultValue(
null
),
608
Category(
"
图片按钮
"
),
609
Description(
"
自定义图片文件名的后缀字符串(非文件后缀名),如图片“1f.gif”的ButtonImageNameExtension即为“f”
"
)]
610
public
string
ButtonImageNameExtension
611
{
612
get
613
{
614
return
(
string
)ViewState[
"
ButtonImageNameExtension
"
];
615
}
616
set
617
{
618
ViewState[
"
ButtonImageNameExtension
"
]
=
value;
619
}
620
}
621
622
/**/
///
<summary>
623
///
获取或设置当前页索引按钮的图片名后缀。
624
///
</summary>
625
///
<remarks>
626
///
当
<see cref="PagingButtonType"/>
设为 Image 时,该属性允许您设置当前页索引数值按钮使用的图片名后缀字符,因此可以使当前页索引按钮与其它页索引按钮使用不同的图片,若未设置该值,则默认值为
<see cref="ButtonImageNameExtension"/>
,即当前页索引按钮与其它页索引按钮使用相同的图片。
627
///
</remarks>
628
[Browsable(
true
),
629
DefaultValue(
null
),
630
Category(
"
图片按钮
"
),
631
Description(
"
当前页索引按钮的图片名后缀字符串
"
)]
632
public
string
CpiButtonImageNameExtension
633
{
634
get
635
{
636
object
obj
=
ViewState[
"
CpiButtonImageNameExtension
"
];
637
return
(obj
==
null
)
?
ButtonImageNameExtension:(
string
)obj;
638
}
639
set
640
{
641
ViewState[
"
CpiButtonImageNameExtension
"
]
=
value;
642
}
643
}
644
645
/**/
///
<summary>
646
///
获取或设置已禁用的页导航按钮图片名后缀字符串。
647
///
</summary>
648
///
<remarks>
649
///
当
<see cref="PagingButtonType"/>
设为 Image 时, 该值允许您设置已禁用(即没有链接,因而点击后无反应)的页导航按钮(包括第一页、上一页、下一页、最后一页四个按钮)的图片文件名后缀字符串,因此可以使已禁用的页导航按钮不同于正常的页导航按钮。若未设置该值,则默认值为
<see cref="ButtonImageNameExtension"/>
,即已禁用的页导航按钮与正常的页导航按钮使用相同的图片。
650
///
</remarks>
651
[Browsable(
true
),
652
DefaultValue(
null
),
653
Category(
"
图片按钮
"
),
654
Description(
"
已禁用的页导航按钮的图片名后缀字符串
"
)]
655
public
string
DisabledButtonImageNameExtension
656
{
657
get
658
{
659
object
obj
=
ViewState[
"
DisabledButtonImageNameExtension
"
];
660
return
(obj
==
null
)
?
ButtonImageNameExtension:(
string
)obj;
661
}
662
set
663
{
664
ViewState[
"
DisabledButtonImageNameExtension
"
]
=
value;
665
}
666
}
667
/**/
///
<summary>
668
///
指定当使用图片按钮时,图片的对齐方式。
669
///
</summary>
670
671
[Browsable(
true
),
672
Description(
"
指定当使用图片按钮时,图片的对齐方式
"
),
673
DefaultValue(ImageAlign.Baseline),
674
Category(
"
图片按钮
"
)]
675
public
ImageAlign ButtonImageAlign
676
{
677
get
678
{
679
object
obj
=
ViewState[
"
ButtonImageAlign
"
];
680
return
(obj
==
null
)
?
ImageAlign.Baseline:(ImageAlign)obj;
681
}
682
set
{ViewState[
"
ButtonImageAlign
"
]
=
value;}
683
}
684
685
686
#endregion
687
688
Paging
#region
Paging
689
690
/**/
///
<summary>
691
///
获取或设置是否启用url来传递分页信息。
692
///
</summary>
693
///
<remarks>
694
///
启用Url分页方式是将用户欲访问的页索引通过Url来传递,由于该分页方式不使用页面向自身回发来传递数据,
695
///
所以每次分页时所有的数据都恢复为初始值或需要重新获取。使用Url分页方式不支持动态改变分页控件的属性值,
696
///
因暂时无法将新的属性值通过Url来传递给下一页。
697
///
</remarks>
698
///
<example>
以下示例说明如何用AspNetPager的Url分页方式对DataGrid进行分页(使用Access数据库):
699
///
<code><![CDATA[
700
///
<%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
701
///
<%@Import Namespace="System.Data.OleDb"%>
702
///
<%@ Import Namespace="System.Data"%>
703
///
<%@ Page Language="C#" debug=true%>
704
///
<HTML>
705
///
<HEAD>
706
///
<TITLE>
Welcome to Webdiyer.com
</TITLE>
707
///
<script runat="server">
708
///
OleDbConnection conn;
709
///
OleDbCommand cmd;
710
///
void Page_Load(object src,EventArgs e){
711
///
conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("access/aspnetpager.mdb"));
712
///
if(!Page.IsPostBack){
713
///
cmd=new OleDbCommand("select count(newsid) from wqnews",conn);
714
///
conn.Open();
715
///
pager.RecordCount=(int)cmd.ExecuteScalar();
716
///
conn.Close();
717
///
BindData();
718
///
}
719
///
}
720
///
721
///
void BindData(){
722
///
cmd=new OleDbCommand("select newsid,heading,source,addtime from wqnews order by addtime desc",conn);
723
///
OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);
724
///
DataSet ds=new DataSet();
725
///
adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"news");
726
///
dg.DataSource=ds.Tables["news"];
727
///
dg.DataBind();
728
///
}
729
///
730
///
void ChangePage(object src,PageChangedEventArgs e){
731
///
pager.CurrentPageIndex=e.NewPageIndex;
732
///
BindData();
733
///
}
734
///
735
///
</script>
736
///
<meta http-equiv="Content-Language" content="zh-cn">
737
///
<meta http-equiv="content-type" content="text/html;charset=gb2312">
738
///
<META NAME="Generator" CONTENT="EditPlus">
739
///
<META NAME="Author" CONTENT="Webdiyer(yhaili@21cn.com)">
740
///
</HEAD>
741
///
<body>
742
///
<form runat="server" ID="Form1">
743
///
<h2 align="center">
AspNetPager分页示例
</h2>
744
///
<asp:DataGrid id="dg" runat="server"
745
///
Width="760" CellPadding="4" Align="center" />
746
///
747
///
<Webdiyer:AspNetPager runat="server" id="pager"
748
///
OnPageChanged="ChangePage"
749
///
HorizontalAlign="center"
750
///
style="MARGIN-TOP:10px;FONT-SIZE:16px"
751
///
PageSize="8"
752
///
ShowInputBox="always"
753
///
SubmitButtonStyle="border:1px solid #000066;height:20px;width:30px"
754
///
InputBoxStyle="border:1px #0000FF solid;text-align:center"
755
///
SubmitButtonText="转到"
756
///
UrlPaging="true"
757
///
UrlPageIndexName="pageindex" />
758
///
</form>
759
///
</body>
760
///
</HTML>
761
///
]]>
</code>
762
///
</example>
763
[Browsable(
true
),
764
Category(
"
分页
"
),
765
DefaultValue(
false
),
766
Description(
"
是否使用url传递分页信息的方式来分页
"
)]
767
public
bool
UrlPaging
768
{
769
get
770
{
771
return
urlPaging;
772
}
773
set
774
{
775
urlPaging
=
value;
776
}
777
}
778
779
/**/
///
<summary>
780
///
获取或设置当启用Url分页方式时,在url中表示要传递的页索引的参数的名称。
781
///
</summary>
782
///
<remarks>
783
///
该属性允许您自定义通过Url传递页索引时表示要传递的页索引的参数的名称,以避免与现有的参数名重复。
784
///
<p>
该属性的默认值是“page”,即通过Url分页时,显示在浏览器地址栏中的Url类似于:
</p>
http://www.webdiyer.com/aspnetpager/samples/datagrid_url.aspx?page=2
785
///
<p>
如将该值改为“pageindex”,则上面的Url将变为:
</p><p>
http://www.webdiyer.com/aspnetpager/samples/datagrid_url.aspx?pageindex=2
</p>
786
///
</remarks>
787
[Browsable(
true
),
788
DefaultValue(
"
page
"
),
789
Category(
"
分页
"
),
790
Description(
"
当启用Url分页方式时,显示在url中表示要传递的页索引的参数的名称
"
)]
791
public
string
UrlPageIndexName
792
{
793
get
{
return
urlPageIndexName;}
794
set
{urlPageIndexName
=
value;}
795
}
796
797
/**/
///
<summary>
798
///
获取或设置当启用Url分页方式时,在url中表示要传递的页索引的参数的名称。
799
///
</summary>
800
///
<remarks>
801
///
该属性允许您自定义通过Url传递页索引时表示要传递的页索引的参数的名称,以避免与现有的参数名重复。
802
///
<p>
该属性的默认值是“page”,即通过Url分页时,显示在浏览器地址栏中的Url类似于:
</p>
http://www.webdiyer.com/aspnetpager/samples/datagrid_url.aspx?pagesize=20
803
///
<p>
如将该值改为“pagesize1”,则上面的Url将变为:
</p><p>
http://www.webdiyer.com/aspnetpager/samples/datagrid_url.aspx?pagesize1=20
</p>
804
///
</remarks>
805
[Browsable(
true
),
806
DefaultValue(
"
pagesize
"
),
807
Category(
"
分页
"
),
808
Description(
"
当启用Url分页方式时,显示在url中表示要传递的记录数的参数的名称
"
)]
809
public
string
UrlPageSize
810
{
811
get
{
return
urlPageSize;}
812
set
{urlPageSize
=
value;}
813
}
814
815
/**/
///
<summary>
816
///
获取或设置当前显示页的索引。
817
///
</summary>
818
///
<remarks>
使用此属性来确定在 AspNetPager 控件中当前显示的页,当前显示的页的数字索引将以红色字体加粗显示。此属性还用于以编程的方式控制所显示的页。
819
///
<p>
<b>
注意:
</b>
不同于DataGrid控件的CurrentPageIndex,AspNetPager的CurrentPageIndex属性是从1开始的。
</p></remarks>
820
[ReadOnly(
true
),
821
Browsable(
false
),
822
Description(
"
当前显示页的索引
"
),
823
Category(
"
分页
"
),
824
DefaultValue(
1
),
825
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
826
public
int
CurrentPageIndex
827
{
828
get
829
{
830
object
cpage
=
ViewState[
"
CurrentPageIndex
"
];
831
int
pindex
=
(cpage
==
null
)
?
1
:(
int
)cpage;
832
if
(pindex
>
PageCount
&&
PageCount
>
0
)
833
return
PageCount;
834
else
if
(pindex
<
1
)
835
return
1
;
836
return
pindex;
837
}
838
set
839
{
840
int
cpage
=
value;
841
if
(cpage
<
1
)
842
cpage
=
1
;
843
else
if
(cpage
>
this
.PageCount)
844
cpage
=
this
.PageCount;
845
ViewState[
"
CurrentPageIndex
"
]
=
cpage;
846
}
847
}
848
849
/**/
///
<summary>
850
///
获取或设置需要分页的所有记录的总数。
851
///
</summary>
852
///
<remarks>
853
///
当页面第一次加载时,应以编程方式将从存储过程或Sql语句中返回的数据表中所有要分页的记录的总数赋予该属性,AspNetPager会将其保存的ViewState中并在页面回发时从ViewState中获取该值,因此避免了每次分页都要访问数据库而影响分页性能。AspNetPager根据要分页的所有数据的总项数和
<see cref="PageSize"/>
属性来计算显示所有数据需要的总页数,即
<see cref="PageCount"/>
的值。
854
///
</remarks>
855
///
<example>
856
///
下面的示例显示如何以编程方式将从Sql语句返回的记录总数赋给该属性:
857
///
<p>
858
///
<code><![CDATA[
859
///
<HTML>
860
///
<HEAD>
861
///
<TITLE>
Welcome to Webdiyer.com
</TITLE>
862
///
<script runat="server">
863
///
SqlConnection conn;
864
///
SqlCommand cmd;
865
///
void Page_Load(object src,EventArgs e)
866
///
{
867
///
conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
868
///
if(!Page.IsPostBack)
869
///
{
870
///
cmd=new SqlCommand("select count(id) from news",conn);
871
///
conn.Open();
872
///
pager.RecordCount=(int)cmd.ExecuteScalar();
873
///
conn.Close();
874
///
BindData();
875
///
}
876
///
}
877
///
878
///
void BindData()
879
///
{
880
///
cmd=new SqlCommand("GetPagedNews",conn);
881
///
cmd.CommandType=CommandType.StoredProcedure;
882
///
cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);
883
///
cmd.Parameters.Add("@pagesize",pager.PageSize);
884
///
conn.Open();
885
///
dataGrid1.DataSource=cmd.ExecuteReader();
886
///
dataGrid1.DataBind();
887
///
conn.Close();
888
///
}
889
///
void ChangePage(object src,PageChangedEventArgs e)
890
///
{
891
///
pager.CurrentPageIndex=e.NewPageIndex;
892
///
BindData();
893
///
}
894
///
</script>
895
///
<meta http-equiv="Content-Language" content="zh-cn">
896
///
<meta http-equiv="content-type" content="text/html;charset=gb2312">
897
///
<META NAME="Generator" CONTENT="EditPlus">
898
///
<META NAME="Author" CONTENT="Webdiyer(yhaili@21cn.com)">
899
///
</HEAD>
900
///
<body>
901
///
<form runat="server" ID="Form1">
902
///
<asp:DataGrid id="dataGrid1" runat="server" />
903
///
904
///
<Webdiyer:AspNetPager id="pager" runat="server"
905
///
PageSize="8"
906
///
NumericButtonCount="8"
907
///
ShowCustomInfoSection="before"
908
///
ShowInputBox="always"
909
///
CssClass="mypager"
910
///
HorizontalAlign="center"
911
///
OnPageChanged="ChangePage" />
912
///
913
///
</form>
914
///
</body>
915
///
</HTML>
916
///
]]>
917
///
</code></p>
918
///
<p>
本示例使用的存储过程代码如下:
</p>
919
///
<code><![CDATA[
920
///
CREATE procedure GetPagedNews
921
///
(@pagesize int,
922
///
@pageindex int)
923
///
as
924
///
set nocount on
925
///
declare @indextable table(id int identity(1,1),nid int)
926
///
declare @PageLowerBound int
927
///
declare @PageUpperBound int
928
///
set @PageLowerBound=(@pageindex-1)*@pagesize
929
///
set @PageUpperBound=@PageLowerBound+@pagesize
930
///
set rowcount @PageUpperBound
931
///
insert into @indextable(nid) select id from news order by addtime desc
932
///
select O.id,O.title,O.source,O.addtime from news O,@indextable t where O.id=t.nid
933
///
and t.id>@PageLowerBound and t.id
<=@PageUpperBound order by t.id
934
///
set nocount off
935
///
GO
936
///
]]>
937
///
</code>
938
///
</example>
939
[Browsable(
false
),
940
Description(
"
要分页的所有记录的总数,该值须在程序运行时设置,默认值为225是为设计时支持而设置的参照值。
"
),
941
Category(
"
Data
"
),
942
DefaultValue(
225
)]
943
public
int
RecordCount
944
{
945
get
946
{
947
object
obj
=
ViewState[
"
Recordcount
"
];
948
return
(obj
==
null
)
?
0
:(
int
)obj;
949
}
950
set
{ViewState[
"
Recordcount
"
]
=
value;}
951
}
952
953
/**/
///
<summary>
954
///
获取当前页之后未显示的页的总数。
955
///
</summary>
956
[Browsable(
false
),
957
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
958
public
int
PagesRemain
959
{
960
get
961
{
962
return
PageCount
-
CurrentPageIndex;
963
}
964
}
965
966
/**/
///
<summary>
967
///
获取或设置每页显示的项数。
968
///
</summary>
969
///
<remarks>
970
///
该值获取或设置数据呈现控件每次要显示数据表中的的数据的项数,AspNetPager根据该值和
<see cref="RecordCount"/>
来计算显示所有数据需要的总页数,即
<see cref="PageCount"/>
的值。
</remarks>
971
///
<example>
以下示例将
<see cref="AspNetPager"/>
设置为允许每页显示8条数据:
972
///
<code>
973
///
<![CDATA[
974
///
975
///
<Webdiyer:AspNetPager id="pager" runat="server" PageSize=8 OnPageChanged="ChangePage"/>
976
///
977
///
]]>
</code></example>
978
[Browsable(
true
),
979
Description(
"
每页显示的记录数
"
),
980
Category(
"
分页
"
),
981
DefaultValue(
10
)]
982
public
int
PageSize
983
{
984
get
985
{
986
object
obj
=
ViewState[
"
PageSize
"
];
987
return
(obj
==
null
)
?
10
:(
int
)obj;
988
}
989
set
990
{
991
ViewState[
"
PageSize
"
]
=
value;
992
}
993
}
994
995
/**/
///
<summary>
996
///
获取在当前页之后还未显示的剩余记录的项数。
997
///
</summary>
998
[Browsable(
false
),
999
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
1000
public
int
RecordsRemain
1001
{
1002
get
1003
{
1004
if
(CurrentPageIndex
<
PageCount)
1005
return
RecordCount
-
(CurrentPageIndex
*
PageSize);
1006
return
0
;}
1007
}
1008
1009
1010
/**/
///
<summary>
1011
///
获取所有要分页的记录需要的总页数。
1012
///
</summary>
1013
[Browsable(
false
),
1014
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
1015
public
int
PageCount
1016
{
1017
get
{
return
(
int
)Math.Ceiling((
double
)RecordCount
/
(
double
)PageSize);}
1018
}
1019
1020
1021
#endregion
1022
1023
TextBox and Submit Button
#region
TextBox and Submit Button
1024
1025
/**/
///
<summary>
1026
///
获取或设置页索引文本框的显示方式。
1027
///
</summary>
1028
///
<remarks>
1029
///
页索引文件框允许用户手式输入要访问的页的索引,当页数非常多时,显示页索引文本框非常方便用户跳转到指定的页,默认情况下,该文本框只有在总页数大于或等于
<see cref="ShowBoxThreshold"/>
的值时才显示,否则不显示,要想该文本框任何时候都显示,请将其值设为Always,若希望任何时候都不显示,则应设为Never。
1030
///
</remarks>
1031
[Browsable(
true
),
1032
Description(
"
指定页索引文本框的显示方式
"
),
1033
Category(
"
文本框及提交按钮
"
),
1034
DefaultValue(ShowInputBox.Auto)]
1035
public
ShowInputBox ShowInputBox
1036
{
1037
get
1038
{
1039
object
obj
=
ViewState[
"
ShowInputBox
"
];
1040
return
(obj
==
null
)
?
ShowInputBox.Auto:(ShowInputBox)obj;
1041
}
1042
set
{ViewState[
"
ShowInputBox
"
]
=
value;}
1043
}
1044
1045
/**/
///
<summary>
1046
///
获取或设置应用于页索引输入文本框的CSS类名。
1047
///
</summary>
1048
[Browsable(
true
),
1049
Category(
"
文本框及提交按钮
"
),
1050
DefaultValue(
null
),
1051
Description(
"
应用于页索引输入文本框的CSS类名
"
)]
1052
public
string
InputBoxClass
1053
{
1054
get
1055
{
1056
return
(
string
)ViewState[
"
InputBoxClass
"
];
1057
}
1058
set
1059
{
1060
if
(value.Trim().Length
>
0
)
1061
ViewState[
"
InputBoxClass
"
]
=
value;
1062
}
1063
}
1064
1065
/**/
///
<summary>
1066
///
获取或设置页索引输入文本框的CSS样式文本。
1067
///
</summary>
1068
1069
[Browsable(
true
),
1070
Category(
"
文本框及提交按钮
"
),
1071
DefaultValue(
null
),
1072
Description(
"
应用于页索引输入文本框的CSS样式文本
"
)]
1073
public
string
InputBoxStyle
1074
{
1075
get
1076
{
1077
return
(
string
)ViewState[
"
InputBoxStyle
"
];
1078
}
1079
set
1080
{
1081
if
(value.Trim().Length
>
0
)
1082
ViewState[
"
InputBoxStyle
"
]
=
value;
1083
}
1084
}
1085
1086
/**/
///
<summary>
1087
///
获取或设置页索引页索引输入文本框前的文本字符串值。
1088
///
</summary>
1089
[Browsable(
true
),
1090
Category(
"
文本框及提交按钮
"
),
1091
DefaultValue(
null
),
1092
Description(
"
页索引输入文本框前的文本内容字符串
"
)]
1093
public
string
TextBeforeInputBox
1094
{
1095
get
1096
{
1097
return
(
string
)ViewState[
"
TextBeforeInputBox
"
];
1098
}
1099
set
1100
{
1101
ViewState[
"
TextBeforeInputBox
"
]
=
value;
1102
}
1103
}
1104
1105
/**/
///
<summary>
1106
///
获取或设置页索引文本输入框后的文本内容字符串值。
1107
///
</summary>
1108
[Browsable(
true
),
1109
DefaultValue(
null
),
1110
Category(
"
文本框及提交按钮
"
),
1111
Description(
"
页索引输入文本框后的文本内容字符串
"
)]
1112
public
string
TextAfterInputBox
1113
{
1114
get
1115
{
1116
return
(
string
)ViewState[
"
TextAfterInputBox
"
];
1117
}
1118
set
1119
{
1120
ViewState[
"
TextAfterInputBox
"
]
=
value;
1121
}
1122
}
1123
1124
1125
/**/
///
<summary>
1126
///
获取或设置提交按钮上的文本。
1127
///
</summary>
1128
[Browsable(
true
),
1129
Category(
"
文本框及提交按钮
"
),
1130
DefaultValue(
"
go
"
),
1131
Description(
"
提交按钮上的文本
"
)]
1132
public
string
SubmitButtonText
1133
{
1134
get
1135
{
1136
object
obj
=
ViewState[
"
SubmitButtonText
"
];
1137
return
(obj
==
null
)
?
"
go
"
:(
string
)obj;
1138
}
1139
set
1140
{
1141
if
(value.Trim().Length
>
0
)
1142
ViewState[
"
SubmitButtonText
"
]
=
value;
1143
}
1144
}
1145
/**/
///
<summary>
1146
///
获取或设置应用于提交按钮的CSS类名。
1147
///
</summary>
1148
[Browsable(
true
),
1149
Category(
"
文本框及提交按钮
"
),
1150
DefaultValue(
null
),
1151
Description(
"
应用于提交按钮的CSS类名
"
)]
1152
public
string
SubmitButtonClass
1153
{
1154
get
1155
{
1156
return
(
string
)ViewState[
"
SubmitButtonClass
"
];
1157
}
1158
set
1159
{
1160
ViewState[
"
SubmitButtonClass
"
]
=
value;
1161
}
1162
}
1163
1164
/**/
///
<summary>
1165
///
获取或设置应用于提交按钮的CSS样式。
1166
///
</summary>
1167
[Browsable(
true
),
1168
Category(
"
文本框及提交按钮
"
),
1169
DefaultValue(
null
),
1170
Description(
"
应用于提交按钮的CSS样式
"
)]
1171
public
string
SubmitButtonStyle
1172
{
1173
get
1174
{
1175
return
(
string
)ViewState[
"
SubmitButtonStyle
"
];
1176
}
1177
set
1178
{
1179
ViewState[
"
SubmitButtonStyle
"
]
=
value;
1180
}
1181
}
1182
/**/
///
<summary>
1183
///
获取或设置自动显示页索引输入文本框的最低起始页数。
1184
///
</summary>
1185
///
<remarks>
1186
///
当
<see cref="ShowInputBox"/>
设为Auto(默认)并且要分页的数据的总页数达到该值时会自动显示页索引输入文本框,默认值为30。该选项当
<see cref="ShowInputBox"/>
设为Never或Always时没有任何作用。
1187
///
</remarks>
1188
[Browsable(
true
),
1189
Description(
"
指定当ShowInputBox设为ShowInputBox.Auto时,当总页数达到多少时才显示页索引输入文本框
"
),
1190
Category(
"
文本框及提交按钮
"
),
1191
DefaultValue(
30
)]
1192
public
int
ShowBoxThreshold
1193
{
1194
get
1195
{
1196
object
obj
=
ViewState[
"
ShowBoxThreshold
"
];
1197
return
(obj
==
null
)
?
30
:(
int
)obj;
1198
}
1199
set
{ViewState[
"
ShowBoxThreshold
"
]
=
value;}
1200
}
1201
1202
1203
#endregion
1204
1205
SelectBox and Submit Button
#region
SelectBox and Submit Button
1206
1207
/**/
///
<summary>
1208
///
获取或设置页索引文本框的显示方式。
1209
///
</summary>
1210
///
<remarks>
1211
///
页索引文件框允许用户手式输入要访问的页的索引,当页数非常多时,显示页索引文本框非常方便用户跳转到指定的页,默认情况下,该文本框只有在总页数大于或等于
<see cref="ShowBoxThreshold"/>
的值时才显示,否则不显示,要想该文本框任何时候都显示,请将其值设为Always,若希望任何时候都不显示,则应设为Never。
1212
///
</remarks>
1213
[Browsable(
true
),
1214
Description(
"
指定页索引文本框的显示方式
"
),
1215
Category(
"
分页记录数选择
"
),
1216
DefaultValue(ShowInputBox.Auto)]
1217
public
ShowInputBox ShowSelectBox
1218
{
1219
get
1220
{
1221
object
obj
=
ViewState[
"
ShowSelectBox
"
];
1222
return
(obj
==
null
)
?
ShowInputBox.Auto:(ShowInputBox)obj;
1223
}
1224
set
{ViewState[
"
ShowSelectBox
"
]
=
value;}
1225
}
1226
1227
/**/
///
<summary>
1228
///
获取或设置应用于页索引输入文本框的CSS类名。
1229
///
</summary>
1230
[Browsable(
true
),
1231
Category(
"
分页记录数选择
"
),
1232
DefaultValue(
null
),
1233
Description(
"
应用于页索引输入文本框的CSS类名
"
)]
1234
public
string
SelectBoxClass
1235
{
1236
get
1237
{
1238
return
(
string
)ViewState[
"
SelectBoxClass
"
];
1239
}
1240
set
1241
{
1242
if
(value.Trim().Length
>
0
)
1243
ViewState[
"
SelectBoxClass
"
]
=
value;
1244
}
1245
}
1246
1247
/**/
///
<summary>
1248
///
获取或设置页索引输入文本框的CSS样式文本。
1249
///
</summary>
1250
1251
[Browsable(
true
),
1252
Category(
"
分页记录数选择
"
),
1253
DefaultValue(
null
),
1254
Description(
"
应用于页索引输入文本框的CSS样式文本
"
)]
1255
public
string
SelectBoxStyle
1256
{
1257
get
1258
{
1259
return
(
string
)ViewState[
"
SelectBoxStyle
"
];
1260
}
1261
set
1262
{
1263
if
(value.Trim().Length
>
0
)
1264
ViewState[
"
SelectBoxStyle
"
]
=
value;
1265
}
1266
}
1267
1268
/**/
///
<summary>
1269
///
获取或设置页索引页索引输入文本框前的文本字符串值。
1270
///
</summary>
1271
[Browsable(
true
),
1272
Category(
"
分页记录数选择
"
),
1273
DefaultValue(
"
每页
"
),
1274
Description(
"
页索引输入文本框前的文本内容字符串
"
)]
1275
public
string
TextBeforeSelectBox
1276
{
1277
get
1278
{
1279
return
(
string
)ViewState[
"
TextBeforeSelectBox
"
];
1280
}
1281
set
1282
{
1283
ViewState[
"
TextBeforeSelectBox
"
]
=
value;
1284
}
1285
}
1286
1287
/**/
///
<summary>
1288
///
获取或设置页索引文本输入框后的文本内容字符串值。
1289
///
</summary>
1290
[Browsable(
true
),
1291
DefaultValue(
"
条
"
),
1292
Category(
"
分页记录数选择
"
),
1293
Description(
"
页索引输入文本框后的文本内容字符串
"
)]
1294
public
string
TextAfterSelectBox
1295
{
1296
get
1297
{
1298
return
(
string
)ViewState[
"
TextAfterSelectBox
"
];
1299
}
1300
set
1301
{
1302
ViewState[
"
TextAfterSelectBox
"
]
=
value;
1303
}
1304
}
1305
1306
1307
/**/
///
<summary>
1308
///
获取或设置提交按钮上的文本。
1309
///
</summary>
1310
[Browsable(
true
),
1311
Category(
"
分页记录数选择
"
),
1312
DefaultValue(
"
设置
"
),
1313
Description(
"
提交按钮上的文本
"
)]
1314
public
string
SubmitButtonSelectText
1315
{
1316
get
1317
{
1318
object
obj
=
ViewState[
"
SubmitButtonSelectText
"
];
1319
return
(obj
==
null
)
?
"
设置
"
:(
string
)obj;
1320
}
1321
set
1322
{
1323
if
(value.Trim().Length
>
0
)
1324
ViewState[
"
SubmitButtonSelectText
"
]
=
value;
1325
}
1326
}
1327
/**/
///
<summary>
1328
///
获取或设置自动显示页索引输入文本框的最低起始页数。
1329
///
</summary>
1330
///
<remarks>
1331
///
当
<see cref="ShowInputBox"/>
设为Auto(默认)并且要分页的数据的总页数达到该值时会自动显示页索引输入文本框,默认值为30。该选项当
<see cref="ShowInputBox"/>
设为Never或Always时没有任何作用。
1332
///
</remarks>
1333
[Browsable(
true
),
1334
Description(
"
指定当ShowInputBox设为ShowInputBox.Auto时,当总页数达到多少时才显示页索引输入文本框
"
),
1335
Category(
"
分页记录数选择
"
),
1336
DefaultValue(
30
)]
1337
public
int
ShowSelectBoxThreshold
1338
{
1339
get
1340
{
1341
object
obj
=
ViewState[
"
ShowSelectBoxThreshold
"
];
1342
return
(obj
==
null
)
?
30
:(
int
)obj;
1343
}
1344
set
{ViewState[
"
ShowSelectBoxThreshold
"
]
=
value;}
1345
}
1346
1347
1348
#endregion
1349
1350
CustomInfoSection
#region
CustomInfoSection
1351
1352
/**/
///
<summary>
1353
///
获取或设置显示用户自定义信息区的方式。
1354
///
</summary>
1355
///
<remarks>
1356
///
该属性值设为Left或Right时会在分页导航元素左边或右边划出一个专门的区域来显示有关用户自定义信息,设为Never时不显示。
1357
///
</remarks>
1358
[Browsable(
true
),
1359
Description(
"
显示当前页和总页数信息,默认值为不显示,值为ShowCustomInfoSection.Left时将显示在页索引前,为ShowCustomInfoSection.Right时将显示在页索引后
"
),
1360
DefaultValue(ShowCustomInfoSection.Never),
1361
Category(
"
自定义信息区
"
)]
1362
public
ShowCustomInfoSection ShowCustomInfoSection
1363
{
1364
get
1365
{
1366
object
obj
=
ViewState[
"
ShowCustomInfoSection
"
];
1367
return
(obj
==
null
)
?
ShowCustomInfoSection.Never:(ShowCustomInfoSection)obj;
1368
}
1369
set
{ViewState[
"
ShowCustomInfoSection
"
]
=
value;}
1370
}
1371
1372
/**/
///
<summary>
1373
///
获取或设置用户自定义信息区文本的对齐方式。
1374
///
</summary>
1375
[Browsable(
true
),
1376
Category(
"
自定义信息区
"
),
1377
DefaultValue(HorizontalAlign.Left),
1378
Description(
"
用户自定义信息区文本的对齐方式
"
)]
1379
public
HorizontalAlign CustomInfoTextAlign
1380
{
1381
get
1382
{
1383
object
obj
=
ViewState[
"
CustomInfoTextAlign
"
];
1384
return
(obj
==
null
)
?
HorizontalAlign.Left:(HorizontalAlign)obj;
1385
}
1386
set
1387
{
1388
ViewState[
"
CustomInfoTextAlign
"
]
=
value;
1389
}
1390
}
1391
1392
/**/
///
<summary>
1393
///
获取或设置用户自定义信息区的宽度。
1394
///
</summary>
1395
[Browsable(
true
),
1396
Category(
"
自定义信息区
"
),
1397
DefaultValue(
typeof
(Unit),
"
40%
"
),
1398
Description(
"
用户自定义信息区的宽度
"
)]
1399
public
Unit CustomInfoSectionWidth
1400
{
1401
get
1402
{
1403
object
obj
=
ViewState[
"
CustomInfoSectionWidth
"
];
1404
return
(obj
==
null
)
?
Unit.Percentage(
40
):(Unit)obj;
1405
}
1406
set
1407
{
1408
ViewState[
"
CustomInfoSectionWidth
"
]
=
value;
1409
}
1410
}
1411
1523
[Browsable(
false
),
2601
2608
///
使用文字按钮。
posted on 2006-11-21 15:28
注销.....
阅读(232)
评论(0)
编辑
收藏
所属分类:
.net摘要
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
串口操作
使用异步客户端套接字
反编译
说说大型高并发高负载网站的系统架构
资源文件
国外C#开源系统一览表
C#的前途如何?
vss教程
.net中客户端验证可以用微软自带的验证控件
动态加载DLL
Powered by:
BlogJava
Copyright © 注销.....