查找和访问WebUserControl的元素

时间:2010-03-03 00:20:41

标签: asp.net webusercontrols

我正在ASP.net中创建一个WebUserControl,并希望以后能够访问该控件的元素。当我访问它们虽然我试图一起访问它们。例如,将CheckBox和表添加到控件然后找到CheckBox,检查它是否已被勾选以及是否已经勾选,从TextBox中获取值。

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

我在想这个错吗?有更好的方法吗?

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

1 个答案:

答案 0 :(得分:2)

您需要通过创建公共属性或函数来公开用户控件功能,以使其按照您的需要执行操作。因此,例如在您的情况下,您可以在用户控件中拥有一个属性,例如(您也可以执行一项功能):

public List<string> SomeValues
{
    get
    {
        // return null if checkbox is not checked, you could just as easily return an empty list.
        List<string> lst = null;
        if (yourCheckBox.Checked)
        {
            lst = new List<string>();

            // You could have something that iterates and find your controls, remember you  
            // are running this within your user control so you can access all it's controls.
            lst.Add(yourTextBox1.Text);
            lst.Add(yourTextBox2.Text);
            lst.Add(yourTextBox3.Text);
            // etc...
        }
        return lst;
    }
}

然后在您的页面中,您可以访问您的用户控件并调用此属性以获取值:

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

关键是在您的用户控件中公开您想要的内容,因此无论使用什么,都不需要了解它的详细信息或实现。您应该可以像使用任何其他控件一样使用它。