我有一个控件(比如 DataGrid 或 ComboBox),它是用户控件的子控件。我想在每个请求上对它进行 DataBind,而不是让它的状态通过 ViewState 持续存在。然而我需要离开EnableViewState=true
。我认为,这意味着我需要在调用 TrackViewState() 之前调用 DataBind。
我阅读了精彩的博客文章TRULY Understanding ViewState,它回答了我的问题4. Initializing child controls programmatically
。然而,这篇文章的解决方案不太理想:动态创建子控件(我不是也不能——现有代码太多),使用第 3 方 CodeExpressionBuilder(更希望这是在代码隐藏中),并使用 OnPreInit (“如果您正在开发 CONTROL,它对您没有任何帮助”)。
由于那篇文章相当陈旧(大约 2006 年),我希望新版本的 ASP.NET 能够纠正这种情况,以便现在有更好的解决方案。那么,社区,有什么好的方法可以做到这一点吗?