2011-09-15 106 views
2

我正在維護一個傳統的ASP.Net 2.0 webforms應用程序,我會盡量避免使問題複雜化。我只想詢問是否有人知道有效恢復整個視圖狀態的方法。如有必要,我可以提供更多細節,但我希望有一些一般的東西。我希望我可以使用Page.LoadPageStateFromPersistenceMedium(),但似乎是一種受保護的方法。在MSDN上的一些閱讀似乎表明我必須使用從PageStatePersister類繼承的自定義類,並使用它的方法來恢復整個狀態。只是想從更有經驗的開發人員那裏獲得一些意見。謝謝。asp.net 2.0恢復整個視圖狀態

回答

1

對此有不同的方法,我們曾經在.NET 2中使用過它,並且運行良好。

的web.config:

<configuration> 
    <system.web> 
    <pages pageBaseType="PagePersisterBasePage" /> 
    </system.web> 
</configuration> 

頁:

public class PagePersisterBasePage : Page 
{ 
    public PagePersisterBasePage() { 
    } 
    protected override PageStatePersister PageStatePersister { 
     get { 
      return new SessionPageStatePersister(this); 
     } 
    } 
} 

只是作爲一個例子,對於完整的文章,值得一讀這一切,去這裏:ASP.NET 2.0 Page State Persister

+0

+1好東西.. –

+0

感謝大衛,這看起來很有前途,我現在正在測試一些實現。將發佈更新。 – kingrichard2005

0

這裏好文章: http://www.codeproject.com/Articles/7655/Persisting-the-state-of-a-web-page

這恢復ViewState,重置所有的控件,並談論恢復request.form()

+0

將autopostback屬性設置爲true的複選框存在問題。 如果用戶處理該選中的事件並依賴頁面上的其他內容(尚未加載),則對於該複選框可能爲時過早,從而導致無效的引用... 因此,一些解決方法必須是使得複選框的檢查事件不會在LoadPost數據中觸發。 你能幫我嗎? – Lluthus