如何以这样的方式连接我的UserControl属性,使它们在回发时保持状态?

时间:2013-03-13 18:27:31

标签: c# asp.net webforms web-controls

在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" />

问题是,允许将其作为公共财产访问并在回发时保留状态的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

最简单的选择是将UserControl委托的公共属性委托给子控件的属性:

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

TextBox将负责维护回发状态。