我有一个aspx页面(example.aspx)与文本框控件(txtid),并在同一页面上,我正在创建一个用户控件(access.ascx)与图像按钮(click.png)。我必须检索文本框(txtid)到用户控件。如何在用户控制页面(access.ascx)中检索文本框控件(txtid)的值?
试试这样写:
TextBox txt= (TextBox)this.Parent.FindControl("txtid");
可以放在你的usercontrol中。这一点。家长应该给你一个例子的参考。aspx页面。
在用户控件中,您可以添加如下属性:
public property Text
{
..
}
然后页面可以将页面文本框中的值分配给该属性,然后用户控件可以使用该属性。您也可以使用SetText(string text)
方法
试试这个
TextBox txt1 = (TextBox)this.Parent.FindControl("txtid")
用户控件内部:
TextBox textBox = (TextBox)this.FindSiblingControl("txtid");
支持方法:public static class StaticClassToHandleExtensions
{
public static Control FindSiblingControl(this Control control, string id)
{
Control parent = control.Parent;
while (parent.GetType() != typeof(ContentPlaceHolder) && parent.GetType() != typeof(Page))
parent = parent.Parent;
return parent.FindControl(id);
}
}
第一层Parent
可能与你的控制不在同一水平上,所以你需要继续往上走。这个停止在ContentPlaceHolder
上的例子将是页面的顶层,它有Page
的母版页,这将是没有母版页的页面的顶层。FindControl
方法将搜索它的整个控件树,这意味着它将搜索多个层次的深度,所以这是最安全和最简单的解决方案。