2012-03-28 150 views
0

我有一個類在SQL Server中存儲ViewState(感謝Adam Weigert的代碼)。它似乎適用於我的網頁,但頁面內的用戶控件在他們應該保存時不會導致ViewState保存。我從Adam獲得的代碼在System.Web.UI.Page下插入一個基類。我想我需要這個代碼也從System.Web.UI.UserControl繼承,使用戶控件也會觸發此代碼,但相較於2010年說:類可以從System.Web.UI.Page和System.Web.UI.UserControl繼承嗎?

班「SqlViewStatePage」不能有多個基類: 「的System.Web.UI 。第」和‘System.Web.UI.UserControl’

我所有的網頁從BaseWebPage現在從SqlViewStatePage繼承繼承。我所有的用戶控件都繼承自BaseUserControl,我想從SqlViewStatePage繼承,但這不起作用。

我該如何解決這個問題?

+0

你可以嘗試創建一個SqlViewStateUserControl和實施類似的功能在「SqlViewStatePage」。重寫的方法會有些不同。 – 2012-03-28 21:11:34

+0

您的意思是這篇文章http://weblogs.asp.net/adweigert/archive/2004/03/09/sqlviewstate-the-path-to-better-viewstate-storage.aspx? – 2012-03-28 21:42:15

回答

2

在新的.cs類中移動「Stores ViewState in SQL Server」的邏輯。在Control中訪問此類並且頁面

我們在我們的體系結構中簡單地放置三個文件。

  1. 基本頁 - 該文件繼承System.Web.UI.Page。此外,我們繼承了我們的aspx頁面中的基本頁面。

  2. 基本控制 - 該文件繼承了System.Web.UI.UserControl。此外,我們在用戶控件中繼承了基本頁面。

  3. 基類 - 我們編寫通用的功能的靜態/非靜態數據成員/成員函數

0

在.NET中我們不能使用多重繼承,所以你不能建立一個從UserControl和Page同時繼承的類。

我讀了一些關於SqlViewStateUserControl,似乎是爲的.Net 1.0和1.1的解決方案。您正在使用VS 2010,您可以通過PageStatePersister課程獲益。繼承這個類並實現它來保存viewstate到數據庫(這個機制是在.Net 2.0中引入的,我相信你會發現它的很多實現)。

0

不是直接解決你的問題,而是幾年前我在一個租用crains的公司的大型項目中使用重寫的SavePageStateToPersistenceMedium和LoadPageStateFromPersistenceMedium。該技術充滿了問題,特別是使用asp.net AJAX庫時,我們最終放棄了這項技術。部分回發無法恢復ViewState。

因此,如果這是爲什麼/如何將ViewState存儲到SQL,那麼您可能會遇到需要克服的問題。

Saving Viewstate on Server

相關問題