【发布时间】:2012-03-21 10:05:14
【问题描述】:
我在为控件 (vb.net) 保留回发视图状态时遇到一些问题
这是我控制的一些代码:
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
Me.EnableViewState = True
Me.ViewStateMode = System.Web.UI.ViewStateMode.Enabled
If Not Page.IsPostBack Then
_SortTime = DateTime.Now
_SortTime.AddSeconds(-10) ' incase the fileserver and webserver date are out of sync
ViewState("PageLoadTimeStamp") = _SortTime
End If
End Sub
加载:
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
_SortTime = CType(ViewState("PageLoadTimeStamp"), DateTime)
End Sub
但是在每次回发时,视图状态又是空的。
更新:我想做什么? 我想存储用户首次加载页面的时间。然后,用户将进行多次回发。在每次回发时,我都需要知道那个时间。
更新 2: 背景:
- aspx 页面 (Editor.aspx) 将动态加载 Web 控件 (ObjectsEditor.ascx)
- ObjectsEditor.ascx 包含单个自定义控件 (Objects.vb)
- Objects.vb 将创建另一个自定义控件 (ObjectsContainer.vb) 并将其添加到它的控件中 需要持久化视图状态的是 ObjectsContainer。
我在任何地方都设置了 EnableViewState = "true",但仍然没有结果。我真的需要在这里设置这些属性吗? (ViewStateMode 和 EnableViewState)如果没有,我应该在哪里处理,这些属性之间有什么区别?
非常感谢。
【问题讨论】:
标签: .net vb.net viewstate page-lifecycle