2016-11-12 12 views
0

私は質問があります。私は正当な条件を見つけられず、正当な検索をして問題を解決できません。Webusercontrolsのプロパティ

私がページを作成しているとき、ある時点でWebUserControlを作成し、htmlタグ内にstate = "true"(lablesのテキストのようなもの)を延期する必要があります。ページが読み込まれ、そのコントロールがコードで後で編集されるかどうか。次のように

<MyControls:Teste Id="aaa" runat="server" state="false"/> 

テスト制御コードである(このコントロールのHTMLページが空白である、それはヘッダのみを有する)

public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl 
{ 
    private static bool state ; 
    public bool State 
    { 
     get { return state ; } 
     set { state = value; } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

問題:

ページに戻るたびにサーバーが再読み込みされると、渡された初期状態に応じて、状態変数は常にfalseまたはtrueに設定されます。この変数がページの先頭に1回だけロードされ、次にcodebeindによってのみ変更できます。

あなたの提案に感謝します。あなたが保存される永続的な価値を維持するためにプロパティの値を格納するためにViewStateを使用する必要が

挨拶 パトリック・ア・ベイガ

答えて

0

public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl 
{ 
    private static bool state ; 
    public bool State 
    { 
     get 
     { 
     if (ViewState["MyState"] == null) 
     { 
      ViewState["MyState"] = false; 
     } 
     return (bool)ViewState["MyState"]; 
     } 
     set 
     { 
     ViewState["MyState"] = value; 
     } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 
関連する問題