移动按钮停止点击事件发生

时间:2010-12-23 12:07:39

标签: c# asp.net webforms

我有一个按钮,包含在一个面板中,有一个点击事件,工作正常。但是当用户按下另一个按钮时,我需要将此按钮移动到另一个面板(这实际上是一个带有modalpopupextender的面板),所以我这个代码这样做:

newPanel.Controls.Add(buttonPanel)

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

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

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

修改

此按钮需要在运行时添加到用户指定的面板中,因此无法提前确定按钮的位置。

我可以代替移动此按钮,创建一个新按钮,但由于此按钮未在page_init中创建,因此我遇到了触发事件的问题。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

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

您必须在每个回发上重新创建所有控件,请参阅here