DavidJGu's Blog

       尼采说,宁可追求虚无也不能无所追求!  Keeping is harder than winning
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

动态添加控件的一个注意点

Posted on 2005-06-16 15:07  Let's DotNet  阅读(477)  评论(0编辑  收藏  举报
近日,写一个类似于Google那种分页风格的分页控件:


个中遇到一个问题花了一个下午才搞定。。。
首先,控件是支持动态设置最大显示的页号链接数的,比如Google是10个。这就需要动态生成这些页码的链接。实现的方法当然是多样的,我选择了“动态添加控件”的方法,主要是不想写javascript

三下五除二,很快写完。但调试却遇到了一个问题,就是点击这些动态的控件进入其所对应页面时总是进page_load()即返回;需再点一次才能进入其绑定的点击事件。
总在想以前做类似东东的时候怎么没有遇到这个问题呢。。。
比较了以前做的东西[在aspx页面动态添加控件],唯一的区别就是以前在生成动态控件都给其指明了一个ID(这是当时业务的需要),问题恰恰出在这里,运行发现每次postback后重写控件并绑定控件事件时其ID发生了变化,比如有3个页码,第一次的ID是1,2,3;第二次便变为4,5,6了,因而第一次postback后因为重写就找不到上一次的事件句柄了。

解决的办法:在生成动态控件时,给其指定一个ID!(当然要唯一了)