Я добавляю пользовательский элемент управления для каждой записи, извлекаемой в считывателе данных, вот основной цикл:
while (dr.Read())
{
ImageSelect imgSel = new ImageSelect(dr["Name"].ToString());
myPanel.Controls.Add(imgSel);
}
Проблема в том, что на страницу не добавлены элементы управления, я проверяю вывод html и есть моя панель, в которой ничего нет.
Я даже прошел по коду в отладчике и убедился, что myPanel.Controls получает элемент управления, добавляемый в каждый цикл, с числом 6, без ошибок, но затем они не отображаются на странице.
Я выполнил приведенный выше код в событиях Page_Init и Page_Load, оба с одинаковым результатом.
EDIT:
Итак, я переключился на использование LoadControl (".... ascx") для получения моего экземпляра элемента управления, который сейчас работает. Но изначально я также передавал данные через конструктор элементов управления. Это все еще возможно, или мне просто нужно установить их через get / sets?
РЕДАКТИРОВАТЬ 2:
Спасибо Фредди за указание на то, что LoadControl перегружен, и вы МОЖЕТЕ передать параметры конструктора, см. Принятый ответ.
РЕДАКТИРОВАТЬ 3:
После попытки этого метода как с, так и без конструктора. Я обнаружил, что лучше использовать сеттеры для любых свойств, которые я хочу, чтобы элемент управления имел по сравнению с попыткой использовать переданный объектный массив для моего конструктора.