1. 引言
在ASP.NET中DataList可以实现数据展示,我们可以通过定制其模版实现丰富 的格式,但是美中不足的时DataList默认情况下不支持分页,我们当然可以编写 一个用户控件以实现分页功能,但是这种方案仍然不是很好,我们希望像使用普 通ASP.NET服务器端控件一样,只需要放置一个DataList并设置分页样式就可以输 出分页链接。
在上次任务中我们创建了DataPager类将创建分页的操作从GridView分离出来 ,本次任务将尝试重用DataPager类为DataList增加分页特性。
2. 分析
开发自定义GridView控件时,可以通过向控件中加入具有特定CommandName的 按钮实现分页,但是对于DataList却不适用,因为DataList不能接收到客户端的 回发事件,这也是DataList类和GridView类的一个区别—DataList类没有实现 IPostBackEventHandler接口。为了能够使DataList接收客户端回发并触发分页事 件,需要使自定义DataList实现IPostBackEventHandler接口,并使用自定义事件 参数类在触发事件时传递页码信息。
IPostBackEventHandler接口定义了ASP.NET服务器控件为处理回发事件而必须 实现的方法,它的成员只有一个方法:
void RaisePostBackEvent(string eventArgument)
该方法由类实现时,使服务器控件能够处理将窗体发送到服务器时引发的事件 。
接下来需要考虑如何在客户端引起回发事件,即怎样生成回发脚本。这里使用 到了ClientScriptManager类,该类作为Page类的一个属性ClientScript出现,通 过调用该类的GetPostBackClientHyperlink方法生成客户端脚本以引起回发,该 方法有两个形式的重载:
GetPostBackClientHyperlink (Control, String)
获取一个引用,并在其开头附加 javascript:,可以在客户端事件中使用该引 用,并将该引用与指定的事件参数一起使用,以便回发到指定控件的服务器。
GetPostBackClientHyperlink (Control, String, Boolean)
获取一个引用,并在其开头附加 javascript:,该引用可用于在客户端事件中 回发到指定控件的服务器,回发时使用指定的事件参数和一个指示是否为事件验 证注册该回发的布尔值。
其中第一个参数指明了处理回发的服务器控件,第二个参数代表传递给服务器 控件的参数,第三个参数代表是否验证注册回发事件。
接下来编写实现代码。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器
, datalist
, 控件
, 参数
, 事件
, 控件datalist
, 自定义控件,引用
, 一个
, asp.net实现分页
, 分页事件
, DataPager
, 服务端分页
, 自定义分页控件
DataList控件
,以便于您获取更多的相关知识。