近日,写一个类似于Google那种分页风格的分页控件:

个中遇到一个问题花了一个下午才搞定。。。
首先,控件是支持动态设置最大显示的页号链接数的,比如Google是10个。这就需要动态生成这些页码的链接。实现的方法当然是多样的,我选择了“动态添加控件”的方法,主要是不想写javascript
三下五除二,很快写完。但调试却遇到了一个问题,就是点击这些动态的控件进入其所对应页面时总是进page_load()即返回;需再点一次才能进入其绑定的点击事件。
总在想以前做类似东东的时候怎么没有遇到这个问题呢
。。。
比较了以前做的东西[在aspx页面动态添加控件],唯一的区别就是以前在生成动态控件都给其指明了一个ID(这是当时业务的需要),问题恰恰出在这里,运行发现每次postback后重写控件并绑定控件事件时其ID发生了变化,比如有3个页码,第一次的ID是1,2,3;第二次便变为4,5,6了,因而第一次postback后因为重写就找不到上一次的事件句柄了。
解决的办法:在生成动态控件时,给其指定一个ID!(当然要唯一了
)

个中遇到一个问题花了一个下午才搞定。。。
首先,控件是支持动态设置最大显示的页号链接数的,比如Google是10个。这就需要动态生成这些页码的链接。实现的方法当然是多样的,我选择了“动态添加控件”的方法,主要是不想写javascript
三下五除二,很快写完。但调试却遇到了一个问题,就是点击这些动态的控件进入其所对应页面时总是进page_load()即返回;需再点一次才能进入其绑定的点击事件。
总在想以前做类似东东的时候怎么没有遇到这个问题呢
比较了以前做的东西[在aspx页面动态添加控件],唯一的区别就是以前在生成动态控件都给其指明了一个ID(这是当时业务的需要),问题恰恰出在这里,运行发现每次postback后重写控件并绑定控件事件时其ID发生了变化,比如有3个页码,第一次的ID是1,2,3;第二次便变为4,5,6了,因而第一次postback后因为重写就找不到上一次的事件句柄了。
解决的办法:在生成动态控件时,给其指定一个ID!(当然要唯一了
浙公网安备 33010602011771号