Примерно так будет работать в коде вашей страницы контента:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DropDownList ddlYear = ((SiteMaster)this.Master).FindControl("ddlYear") as DropDownList;
ddlYear.SelectedIndexChanged += new EventHandler(ddlYear_SelectedIndexChanged);
}
void ddlYear_SelectedIndexChanged(object sender, EventArgs e)
{
throw new NotImplementedException();
}
Вам потребуется удалить атрибуты OnSelectedIndexChanged из раскрывающихся списков на главной странице.Вам также нужно будет заменить SiteMaster любым типом вашей главной страницы.
Это будет работать, но вы можете подумать о том, чтобы сохранить обработчики событий на главной странице и открывать новые события с главной страницы, которые запускаются прираскрывающиеся списки меняются.Это исключило бы необходимость того, чтобы ваши дочерние страницы знали имена элементов управления на главной странице, что не является идеальным.
Обновление: если списки DropDown должны быть в главном только для целей макета, добавьтедополнительный шаблон ContentTemplate для главной страницы.Это позволит вам размещать DropDowns там, где они должны появиться, но поддерживать логику на страницах контента.Это будет чище, чем иметь половину кода в одном месте и половину в другом и полагаться на FindControl, чтобы связать их.