0

ASP.NET Webforms アプリケーションには、次のようなプロパティを持つ UserControl を含む送信フォームがあります。

    public string Name
    {
        get
        {
            String s = (String)ViewState["Name"];
            return ((s == null) ? String.Empty : s);
        }

        set
        {
            ViewState["Name"] = value;
        }
    }

これは、MSDN のウォークスルーを基にしています。これは、次のように ascx で定義されたテキスト ボックスの内容に "バインド" されていると見なされます (可能ではないと思いますので、データバインドではありません)。

  <asp:TextBox runat="server" ID="name" />

問題は、これをパブリック プロパティとしてアクセス可能にし、ポストバック時に状態を保持できるようにするためのベスト プラクティスは何ですか?

4

1 に答える 1

1

最も簡単なオプションは、UserControlデリゲートのパブリック プロパティを子コントロールのプロパティに設定することです。

public string Name
{
   get { return name.Text; }
   set { name.Text = value; }
}

TextBox、ポストバック時に状態を維持します。

于 2013-03-14T12:03:38.213 に答える