[英]Setting a textbox text in usercontrol from page
我有一个包含文本框的usercontrol。 现在,我想向该用户控件添加变量,将其称为“文本”,它将使用传入的值填充文本框。我认为可以在用户控件后面的代码中的变量“集合”中完成此操作。
public string Text
{
get {}
set
{
txtBox.Text = value;
}
}
txtBox是用户控件中文本框的ID。 有谁知道该怎么做?
谢谢
编辑我怀疑的问题是我正在托管用户控件的页面的Page_Load中设置文本值。 我应该在哪里设置该值?
如果您的问题是txtBox
为null,那么我可以建议您执行以下操作:
如果要动态创建用户控件,则不要忘记在(隐式或显式)访问其子控件之前将其添加到页面的控件树中。 否则,所有这些子控件将保持未初始化状态:
MyUserControl ctrl = (MyUserControl )Page.LoadControl("~/MyUserControl.ascx");
base.Controls.Add(ctrl);
ctrl.Text = "some value";
如果您的用户控件在页面的标记中声明,那么不要忘记使用Register
指令进行Register
,并将“ Src”属性设置为用户控件的位置:
<%@ Register TagPrefix="controls" TagName="MyUserControl"
Src="~/MyUserControl.ascx" %>
<controls:MyUserControl id="ctrl1" Text="some value" runat="server" />
使用以下技术注册用户控件将无效(如果所有子控件都是动态创建的,则不会。但是然后,您不需要用户控件-您只需要从Control类派生的类):
<%-- Will not work for user controls --%>
<%@ Register Assembly="MyControlsAssembly.Shell" Namespace="MyControls"
TagPrefix="controls" %>
希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.