Как я могу сохранить фактический элемент управления в списке? - PullRequest
1 голос
/ 19 октября 2010

Короче говоря, я хотел бы взять свои пользовательские элементы управления, которые загружаются динамически, и вставить их в список, который ссылается на фактический загруженный объект. Так что я могу пойти в список и получить результаты из пользовательского контроля. Я хотел бы использовать mycontrol.GetResult (), и тогда он будет ссылаться на элемент управления и извлекать результаты из заполненной формы, которые будут возвращены в виде строки. Я не хочу, чтобы он инициализировал новый элемент управления того же типа, потому что тогда я не смогу получить свои результаты. Есть предложения?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 19 октября 2010

Просто создайте список элементов управления:

var controls = new List<Control>();

foreach(var control in Page.Controls)
{
    controls.Add(control);
}

Затем вы можете использовать этот список для ссылки на каждый из элементов управления по мере необходимости (это простой пример ... ваш код для заполнения списка будет наиболеескорее всего будет сложнее).

0 голосов
/ 21 октября 2010

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

0 голосов
/ 19 октября 2010

Кто добавляет элементы управления программно? Страница или пользовательский элемент управления? Этот компонент может сделать это. В противном случае другой трюк, скажем, пользовательский элемент управления динамически загружает другие элементы управления. Вы могли бы дать странице определение интерфейса, скажем IDynamicControlHolder, которое имеет тип List, и сделать это в динамическом элементе управления (или где-то еще).

if (this.Page is IDynamicControlHolder)
   // change this to the appropriate reference
   ((IDynamicControlHolder)this.Page).DynamicControls.Add(this); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...