我的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" />
答案 0 :(得分:0)
每次加载页面时都会设置它。尝试初始阶段。
与此相似
protected void Page_Init(object sender, EventArgs e)
{
ucUserForm.TbFirstName.Text = "Tomas";
}
Init只在Page的生命周期中发生过一次
答案 1 :(得分:0)
试试这个:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ucUserForm.TbFirstName.Text = "Tomas";
}
}