#c# #asp.net #dynamic #webforms #mouseclick-event
#c# #asp.net #динамический #веб-формы #щелчок мыши-событие
Вопрос:
У меня есть веб-форма, элементы управления которой создаются динамически, поскольку их количество может варьироваться. Каждый элемент представляет собой панель, содержащую текстовое поле, выпадающий список и кнопку.
Каждому элементу управления присваивается уникальный идентификатор, и все кнопки имеют одинаковое значение ClickEvent. Внутри кода ClickEvent я хочу получить идентификатор панели, к которой относится presedButton, чтобы я мог получить доступ к выбранному значению из выпадающего списка этой панели и тексту из текстового поля.
Как я могу сделать вышеописанное?
Ответ №1:
private void button1_Click(object sender, EventArgs e)
{
var panelId = ((Button)sender).Parent.ID;
}
Или вы могли бы получить элементы управления напрямую
private void button1_Click(object sender, EventArgs e)
{
var myTextbox = ((Button)sender).Parent.Controls.OfType<TextBox>().FirstOrDefault();
var myDropDownlist = ((Button)sender.Parent.Controls.OfType<DropDownList>().FirstOrDefault();
}
или по идентификатору элемента управления:
private void button1_Click(object sender, EventArgs e)
{
var myTextbox = ((Button)sender).Parent.Controls.OfType<TextBox>().Where(x => x.ID == "textboxID").SingleOrDefault();
var myDropDownlist = ((Button)sender).Parent.Controls.OfType<DropDownList>().Where(x => x.ID == "dropdownlistID").SingleOrDefault();
}