繁体   English   中英

在页面的usercontrol中设置文本框文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM