日期:2014-05-17  浏览次数:20429 次

关于控件被Add到其他Controls里之后事件失效的问题
本帖最后由 fujie724 于 2013-06-20 09:21:34 编辑
问题是这样的:

页面上有一个asp:Panel,里面有一个asp:Button。这个Button有个服务器端的Click事件的处理。
正常的情况下点击按钮,会触发事件,没问题。

问题在于,进行了某个操作之后,这整个Panel需要移到到Repeater里的某一行。比如
Repeater.Items[0].Control.Add(Panel1);

进行了这步之后,这个Panel里的按钮的服务器Click事件就无法触发了。
即使重新再绑过一次事件也还是不能触发。
Button.Click += new ......(再绑到那个事件函数)

但是呢,如果不是移动到Repeater里,而是移动到其他的panel里什么的,就没问题。
为什么唯独不能移动到Repeater的item里呢?

------解决方案--------------------
猜测是Button移到Repeater中后,Button的id改变了
试试遍历Repeater的行,找到Button重新绑定点击事件
------解决方案--------------------
Refer Repeater inside button click event:
http://www.cnblogs.com/insus/articles/2036884.html

see also:
http://www.cnblogs.com/insus/archive/2013/05/06/3063688.html