2010-12-23 62 views
0

我有一个按钮,包含在一个面板中,点击事件,工作正常。然而,当用户按下另一个按钮,我需要这个按钮移动到另一个面板(这实际上是一个modalpopupextender面板),所以我这段代码可以这样做:移动按钮停止单击事件发生

newPanel.Controls.Add(buttonPanel) 

这一切得到的感动,看起来很好。但是现在,当按钮被点击时,它不会触发相关的事件。我尝试在page_init中重新添加事件,使用此代码

((Button)this.FindControl("serverModalSave")).Command += new CommandEventHandler(modalSave_Click); 

但是没有运气。我怎样才能让这个按钮在移动时触发它的点击事件,为什么当它移动时它会停止工作?

编辑:

这个按钮需要被添加到在运行时用户指定的面板,所以没有办法来确定按钮将提前走了。

我可以代替移动此按钮,创建一个新的,但因为这个按钮不是在page_init中创建的,我有问题得到这个来触发一个事件。

回答

2

而不是移动按钮,另一个面板上的另一个按钮设置为隐藏。

隐藏您想要移动的按钮,并在需要时显示隐藏的按钮。

移动控件会更改命名层次结构,现在无法找到该按钮,并且点击事件无法触发。

这是由于page life cycle的工作原理。 Here是一个很好的(如果有点过时的)关于视图状态如何工作的文章 - 如果你明白这一点,你就会明白出了什么问题。

+0

这是我的问题,面板按钮获取的加入将在运行时间变化,就没有办法事先哪个面板才知道将需要添加到,所以我必须移动它。另一种选择是动态地向面板添加一个新按钮,但是我也遇到了一些问题。 – 2010-12-23 12:14:59

0

如果您正在新面板中创建按钮,当点击此按钮时,您是否在回发中重新创建它?

您必须重新创建在每次回发的所有控​​件看here