Поиск и доступ к элементам WebUserControl - PullRequest
1 голос
/ 03 марта 2010

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

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

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

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

1 Ответ

2 голосов
/ 03 марта 2010

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

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;

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

...