UserControl中未分配TextBox.Text属性

时间:2011-09-21 07:09:28

标签: asp.net user-controls textbox

我的UserControl代码如下,我在UserControl中有一个TextBox,想从网页访问TextBox.Text属性。

UcUserForm用户控件插入myform.aspx网页。

在myform.aspx PageLoad上我为textBox设置了这个

的值
ucUserForm.TbFirstName.Text = "Tomas";

一切正常。加载网页时,我在文本框中看到名称。然后我将Tomas的值更改为Jonas。

on myform.aspx ButtonClick我正在尝试读取值

var mynewname = ucUserForm.TbFirstName.Text; 

尽管在网页上的TextBox中将名称从Tomas更改为Jonas但我仍然得到旧名称Tomas。无法理解问题出在哪里。

后面的UserControl代码

  public partial class UcUserForm: System.Web.UI.UserControl
    {


        public TextBox TbFirstName
        {
            get { return tbFirstName; }

        }

}

UserControl网页

  <asp:TextBox  ID="tbFirstName" autocomplete="off"  MaxLength="25" runat="server"></asp:TextBox>

在default.aspx中注册用户控制代码

<%@ Register Src="ucUserForm.ascx" TagName="ucUserForm" TagPrefix="uc1" %>
<uc1:ucUserForm ID="ucUserForm" runat="server" />

2 个答案:

答案 0 :(得分:0)

每次加载页面时都会设置它。尝试初始阶段。

与此相似

 protected void Page_Init(object sender, EventArgs e)
    {
            ucUserForm.TbFirstName.Text = "Tomas";
    }

Init只在Page的生命周期中发生过一次

http://msdn.microsoft.com/en-us/library/ms178472.aspx

答案 1 :(得分:0)

试试这个:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
           ucUserForm.TbFirstName.Text = "Tomas";
        }
     }