C# 如何从页面到用户控件访问文本框值

C# 如何从页面到用户控件访问文本框值,c#,asp.net,C#,Asp.net,我有一个带有文本框控件(txtid)的aspx页面(example.aspx),在同一页面上,我创建了一个带有图像按钮(click.png)的用户控件(access.ascx)。我必须将文本框(txtid)检索到用户控件中。如何在用户控件页(access.ascx)中检索文本框控件(txtid)的值?在用户控件中,可以添加如下属性: public property Text { .. } 然后页面可以将页面文本框中的值分配给该属性,用户控件可以使用该属性。您也可以使用SetText(字符串

我有一个带有文本框控件(txtid)的aspx页面(example.aspx),在同一页面上,我创建了一个带有图像按钮(click.png)的用户控件(access.ascx)。我必须将文本框(txtid)检索到用户控件中。如何在用户控件页(access.ascx)中检索文本框控件(txtid)的值?

在用户控件中,可以添加如下属性:

public property Text
{
  ..
}
然后页面可以将页面文本框中的值分配给该属性,用户控件可以使用该属性。您也可以使用
SetText(字符串文本)
方法。

试试这个

TextBox txt1 = (TextBox)this.Parent.FindControl("txtid")
尝试以下方法:

TextBox txt= (TextBox)this.Parent.FindControl("txtid");

这将进入你的用户控制。此.Parent应为您提供对example.aspx页面的引用。

在您的用户控件中:

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);
    }
}

第一级
父级
可能与控件不在同一级别,因此您需要继续向上。此示例中,如果停止在
ContentPlaceHolder
上,则该页面的顶层为
page
,该页面的顶层为不带母版页的页面的顶层。
FindControl
方法将搜索其整个控件树,这意味着它将搜索多个层次的深度,因此这是最安全、最简单的解决方案。

与@Paritosh@Rahulkisi ke回答相同的nahi ho sakte kya..?在同一个问题中,两个相同的答案使用相同的控制名称,如“txtid”,,非常有趣..首先阅读问题..我有一个带有文本框控件(txtid)的aspx页面(example.aspx),或者您的ascx可能包含一个名为MyParentPage的公共属性页面,您可以在其中保存实际的页面引用。