2014-07-09 32 views
0

我正在構建一個簡單繼承自RegularExpressionValidator的自定義控件。在構造函數中,我需要能夠看到控件的viewstate值是什麼,以便我可以在構造過程中使用該值來確定我需要使用哪個驗證表達式。如何通過構造函數實現動態的RegularExpressionValidator?

問題是構造函數調用時無法訪問viewstate。由於調用構造函數的時間,至少viewstate始終爲空。

我試着重寫render方法,但由於某些原因,即使控件有權訪問viewstate,base.validation表達式總是失敗,因爲它沒有在構造函數中分配。

我擁有的是一個公共屬性,它看着viewstate。

public NameType NameValidationType 
     { 
      get 
      { 
       return this.ViewState["NameType"] == null ? NameType.FirstName : (NameType)ViewState["NameType"]; 
      } 

      set 
      { 
       this.ViewState["NameType"] = value; 
      } 
     } 

當調用構造函數時,此值始終爲空。有什麼方法可以延遲構造函數的執行以在構造之前從視圖狀態讀取?

感謝您的任何幫助。

回答

0

我的解決方案是爲了在OnPreRender事件中構建控件的基本驗證表達式和其他屬性。渲染太遲了,OnPreRender之前的任何內容都無法訪問視圖狀態。

相關問題