Asp.net 文本框。未在UserControl中分配文本属性
我的UserControl代码如下,我在UserControl中有一个TextBox,我想从网页访问TextBox.Text属性 UcUserForm用户控件插入myform.aspx网页 在myform.aspx PageLoad上,我为文本框设置如下值Asp.net 文本框。未在UserControl中分配文本属性,asp.net,user-controls,textbox,Asp.net,User Controls,Textbox,我的UserControl代码如下,我在UserControl中有一个TextBox,我想从网页访问TextBox.Text属性 UcUserForm用户控件插入myform.aspx网页 在myform.aspx PageLoad上,我为文本框设置如下值 ucUserForm.TbFirstName.Text = "Tomas"; 一切正常。当网页加载时,我会在文本框中看到名称。然后我将值从Tomas更改为Jonas 在myform.aspx按钮上单击“我正在尝试读取值” var mynew
ucUserForm.TbFirstName.Text = "Tomas";
一切正常。当网页加载时,我会在文本框中看到名称。然后我将值从Tomas更改为Jonas
在myform.aspx按钮上单击“我正在尝试读取值”
var mynewname = ucUserForm.TbFirstName.Text;
尽管这个名字在网页的文本框中从Tomas改为Jonas,但我还是得到了老名字Tomas。我不明白问题出在哪里
用户控制代码隐藏
public partial class UcUserForm: System.Web.UI.UserControl
{
public TextBox TbFirstName
{
get { return tbFirstName; }
}
}
用户控制网页
<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" />
每次加载页面时都会进行设置。在初始化阶段尝试 与此类似
protected void Page_Init(object sender, EventArgs e)
{
ucUserForm.TbFirstName.Text = "Tomas";
}
初始化只在页面的生命周期中发生一次
试试这个:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ucUserForm.TbFirstName.Text = "Tomas";
}
}
移除“set”访问器:它已被移除。但是问题仍然存在。您能演示如何将用户控件添加到页面中吗?viewstate是否已启用?*@SteveB I添加了用户控件注册码。Viewstate设置为默认启用。