问题
In an ASP.NET Webforms application I have a submission form containing a UserControl with properties as such:
public string Name
{
get
{
String s = (String)ViewState["Name"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Name"] = value;
}
}
This is adapted from an MSDN walk-through. This is assumed to be "bound" (not databinding as I don't think that's possible) to the contents of a text box defined in the ascx as below:
<asp:TextBox runat="server" ID="name" />
The question is, what is the best practice for allowing this to be accessible as a public property, and retain state on postback?
回答1:
The simplest option is to have the public properties on your UserControl
delegate to the properties of the child controls:
public string Name
{
get { return name.Text; }
set { name.Text = value; }
}
The TextBox
will then take care of maintaining the state on postback.
来源:https://stackoverflow.com/questions/15393525/how-can-i-connect-up-my-usercontrol-properties-in-such-a-way-that-they-retain-st