asp.net - LoadViewState 未在我的用户控件上触发

标签 asp.net user-controls viewstate

我有一个嵌套在转发器中的用户控件。 在我的用户控件中,我有另一个中继器,其中有一个面板。

我试图重写用户控件的 LoadViewState 事件并将控件动态添加到面板。我想在 LoadViewState 中执行此操作,以便在加载 View 状态之前添加动态控件,以便它们在回发后保留其值。

由于某种原因,用户控件 (ascx) 上的 LoadViewState 事件未触发。有什么方法可以强制它点火,或者我可以使用其他方法吗?我已经排除了用户控件中继器数据绑定(bind)事件,因为即使数据绑定(bind)没有发生,我也需要它工作,而且我也无法在中继器项目创建事件上执行此操作,因为子面板和内部 html 不存在还没有。

最佳答案

LoadViewState 不是添加子控件的合适位置。要在用户控件中动态添加控件,您需要查看 CreateChildControls方法。

它不会触发 LoadViewState 事件,因为您需要在 ViewState 中保存至少一个值才能触发该事件。

关于asp.net - LoadViewState 未在我的用户控件上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478509/

相关文章:

c# - 如果多个控件使用同一个条形菜单,如何确定哪个调用了它

c# - 如何在 asp.net 的 ViewState 中存储数组?

asp.net - View 状态 MAC 验证失败

asp.net - IIS 如何知道它是为网站还是 Web 应用程序项目提供服务?

asp.net - 从 asp.net 4 中的资源文件获取文本

c# - 将字符串数组传递给 webservice 方法

asp.net - 用户控件(ascx)和属性

c# - 如何将参数传递给中继器中的用户控件

.net - 是什么原因导致这个 "Invalid length for a Base-64 char array"

asp.net - PushStreamContent 不会发送最终的零长度 block 来表示流结束