【发布时间】:2011-09-21 07:09:28
【问题描述】:
我的 UserControl 代码如下,我在 UserControl 中有一个 TextBox,想从网页访问 TextBox.Text 属性。
UcUserForm 用户控件被插入到 myform.aspx 网页中。
在 myform.aspx PageLoad 上,我像这样为 textBox 设置值
ucUserForm.TbFirstName.Text = "Tomas";
一切正常。加载网页时,我在文本框中看到名称。然后我将值从 Tomas 更改为 Jonas。
在 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; }
}
}
用户控制网页
<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" />
【问题讨论】:
-
移除“set”访问器:这是有害的
-
已删除。但问题依然存在。
-
您能展示一下如何将用户控件添加到页面吗?视图状态是否启用?*
-
@SteveB 我添加了用户控制注册码。 Viewstate 设置为默认 - 启用。
标签: asp.net user-controls textbox