Как оказалось, имя пользовательского элемента управления было изменено - мой usercontrol, помеченный как "ucUserControl", изменил свое имя на общее имя - 'ctl01'.
Итак, dvSituation.Rows[0].Cells[0].FindControl("ctl01")
нашел элемент управления.
Чтобы найти этот идентификатор, я просто посмотрел на отображаемый HTML-элемент и проверил родительский элемент по этому идентификатору, например, 'ctl00_MainContent_dvDetailsView_ctl01_lblLabel
', где lblLabel появился в ucUserControl.
Столбец строк представляет собой индекс числа полей на основе 0, а индекс ячеек будет равен 1, если указан шаблон заголовка.
РЕДАКТИРОВАТЬ : OMG! Кто-то (на самом деле это не я, клянусь) спрятал свойство ID в классе элемента управления!
public partial class UserControl : BaseControl
{
public int Id;
}
Это означало, что когда ASP.Net генерировал идентификатор, он не мог и просто назначил общий идентификатор (в данном случае «ctl01») элементу управления, а не фактическому имени.
Wow.