类可以从 System.Web.UI.Page 和System.Web.UI.UserControl继承

本文关键字:UI System Web UserControl 继承 Page | 更新日期: 2023-09-27 18:29:31

我有一个在SQL Server中存储ViewState的类(感谢Adam Weigert的代码(。它似乎适用于我的网页,但页面中的用户控件在应该保存时不会导致ViewState保存。我从 Adam 那里得到的代码在 System.Web.UI.Page 下面插入了一个基类。我想我需要这段代码也从System.Web.UI.UserControl继承,以便用户控件也会触发这段代码,但 VS 2010 说:

类"SqlViewStatePage"不能有多个基类: "System.Web.UI.Page"和"System.Web.UI.UserControl">

我所有的网页都继承自BaseWebPage现在继承自SqlViewStatePage。我所有用户控件都继承自我想从 SqlViewStatePage 继承BaseUserControl,但这不起作用。

我怎样才能做到这一点?

类可以从 System.Web.UI.Page 和System.Web.UI.UserControl继承

新的.cs类中移动 "Stores ViewState in SQL Server" 的逻辑。 在控件和页面中访问此类

我们在架构中放置了三个文件。

  1. 基本页面 - 此文件继承 System.Web.UI.Page。此外,我们在 aspx 页中继承基页。

  2. 基本控件 - 此文件继承 System.Web.UI.UserControl。此外,我们在用户控件中继承基本页面。

  3. 基类 - 我们编写通用函数 静态/非静态 数据成员/成员函数

在 .Net 中,我们不能使用多重继承,因此您无法同时构建从 UserControl 和 Page 继承的类。

我读了一些关于SqlViewStateUserControl的信息,这似乎是.Net 1.0和1.1的解决方案。您正在使用VS 2010,然后可以通过PageStatePersister类受益。继承这个类并实现它以将视图状态保存到数据库(这种机制是在 .Net 2.0 中引入的,我相信你会发现它的很多实现(。

没有直接解决您的问题,但我几年前在一家租用 crains 的公司的一个大型项目中覆盖了 SavePageStateToPersistenceMedium 和 LoadPageStateFromPersistenceMedium。该技术充满了问题,尤其是在使用 asp.net AJAX 库时,我们最终放弃了这项技术。部分回发无法还原视图状态。

因此,如果这就是您将ViewState存储为SQL的原因/方式,则可能需要克服问题。

在服务器上保存视图状态

相关文章: