我在webform上有一个用户控件。我在用户控件上有viewstate支持的公共属性。在webform的代码隐藏中,我尝试设置公共属性。当我在集合点调试后面的代码时,调试器永远不会将我带到setter。同样,公共属性的文本框的值永远不会被设置。为什么呢?
//aspx page with reference to user control on a telerik tab/page view
<telerik:RadPageView ID="radpvCommunication" runat="server">
<uc:Communication ID="Communication1" runat="server" />
</telerik:RadPageView>
//Webform method to set user control public property
private void SetCommunicationControlText()
{
Communication1.SubjectTextBoxText = "This is a test set from organization";
}
//user control code
public partial class CommunicationUserControl : UserControl
{
public string SubjectTextBoxText
{
get { return ViewState["SubjectTextBoxText"].ToString(); }
set { ViewState["SubjectTextBoxText"] = value; }
}
}
答案 0 :(得分:1)
为什么不让属性包装控件?这样,控件就会为您管理视图状态:
public string SubjectTextBoxText
{
get { return TextBox1.Text; }
set { Textbox1.Text = value; }
}
这是我采取的方法,效果很好。