Asp.net 查找和访问WebUserControl的元素

Asp.net 查找和访问WebUserControl的元素,asp.net,webusercontrols,Asp.net,Webusercontrols,我正在ASP.net中创建一个WebUserControl,希望以后能够访问该控件的元素。当我访问它们时,尽管我试图一起访问它们。例如,向控件添加复选框和表,然后查找该复选框,检查是否已勾选,如果已勾选,则从文本框中获取值 目前,我已经从自定义控件在页面上加载了所有内容,但是当遍历页面上的控件时,似乎没有WebUserControl类型的控件。所有控件都在页面上,但它们作为单独的ASP.net控件存在 我想错了吗?有更好的方法吗 我不确定这是否解释得很好,请随时提出澄清问题。您需要通过公开属性或

我正在ASP.net中创建一个WebUserControl,希望以后能够访问该控件的元素。当我访问它们时,尽管我试图一起访问它们。例如,向控件添加复选框和表,然后查找该复选框,检查是否已勾选,如果已勾选,则从文本框中获取值

目前,我已经从自定义控件在页面上加载了所有内容,但是当遍历页面上的控件时,似乎没有WebUserControl类型的控件。所有控件都在页面上,但它们作为单独的ASP.net控件存在

我想错了吗?有更好的方法吗


我不确定这是否解释得很好,请随时提出澄清问题。

您需要通过公开属性或函数来公开用户控件功能,以使其满足您的需要或表现出您想要的样子。例如,在您的情况下,您的用户控件中可以有一个属性,如(您也可以执行一个函数):

public列出一些值
{
得到
{
//returnnull如果未选中复选框,则可以同样轻松地返回空列表。
列表lst=null;
如果(yourCheckBox.Checked)
{
lst=新列表();
//你可以做一些迭代,找到你的控件,记得吗
//正在您的用户控件中运行此功能,以便您可以访问它的所有控件。
添加(yourTextBox1.Text);
添加(yourTextBox2.Text);
添加(yourTextBox3.Text);
//等等。。。
}
返回lst;
}
}
然后在页面中,您可以访问用户控件并调用此属性以获取值:

// assuming you defined your usercontrol with the 'yourUserControl' ID
List<string> lst = yourUserControl.SomeValues;
//假设您使用“yourUserControl”ID定义了usercontrol
List lst=yourUserControl.SomeValues;
关键是要在用户控件中公开您想要的内容,这样无论使用它的是什么,都不需要知道它的细节或实现。您应该能够像使用任何其他控件一样使用它

// assuming you defined your usercontrol with the 'yourUserControl' ID
List<string> lst = yourUserControl.SomeValues;