Поиск и доступ к элементам WebUserControl

Я создаю WebUserControl в ASP.net и хочу иметь доступ к элементам этого элемента управления позже. Когда я получаю к ним доступ, я пытаюсь получить к ним доступ вместе. Например, добавив CheckBox и таблицу к элементу управления, а затем найдя CheckBox, проверив, был ли он отмечен, и, если он отмечен, получите значения из TextBoxes.

В настоящее время у меня все загружается на страницу из пользовательских элементов управления, но при переборе элементов управления на странице, похоже, отсутствует элемент управления моего типа WebUserControl. Все элементы управления есть на странице, но они существуют как отдельные элементы управления ASP.net.

Я думаю об этом неправильно? Есть лучший способ сделать это?

Я не уверен, что это объясняется очень хорошо, пожалуйста, не стесняйтесь задавать уточняющие вопросы.

1 ответ

Решение

Вам нужно раскрыть функциональность пользовательских элементов управления, сделав открытые свойства или функции, чтобы заставить их делать то, что вам нужно, или действовать так, как вы хотите. Так, например, в вашем случае у вас может быть свойство в вашем пользовательском элементе управления, как (вы также можете сделать функцию):

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;

Ключ заключается в том, чтобы просто выставить то, что вы хотите, в своем пользовательском элементе управления, чтобы все, что его использует, не должно знать о его деталях или реализации. Вы должны иметь возможность использовать его так же, как и любой другой элемент управления.

Другие вопросы по тегам