Web用户控件在回发时丢失属性

时间:2009-12-16 17:03:42

标签: asp.net controls

我创建了一个usercontrol,它有一个名为“DialogClosed”的公共事件。

此用户控件还有一个按钮。当用户单击该按钮时,后台代码将触发“DialogClosed”事件。

问题是,在用户点击按钮后,它会导致回发,这会创建我的控件的新实例,并且我的控件丢失了所有属性,因为原始实例不再存在。

因此,当我触发事件时,它会抛出异常(因为“DialogClosed”== null)

3 个答案:

答案 0 :(得分:1)

也许我错过了一些东西......但是你不能在创建控件时检查页面的IsPostback属性,以确保不在回发上创建控件吗?

此外,您在什么情况下创建控件?

答案 1 :(得分:0)

是否为控件启用了ViewState?

如果是,则需要在页面的Init Event上实例化UserControl,以便在回发时保留属性,除非您只是在aspx标记中声明它。

答案 2 :(得分:0)

您需要在回发页面后重新绑定事件处理程序。但是如果启用了viewstate,则不应丢失属性。