Невозможно получить значения динамически создаваемых элементов управления C#
I have created dynamic controls on button click and I'm not able to retrieve values of dynamically created controls. I am getting values of dynamic controls inside a panel. pnlDepartment is the Panel ID.
The strDDLValue has only first dropdown values and when it loops for the second time it still takes the first dropdown values and unable to get dynamic control values. Please correct me if I'm making a mistake somewhere.
Что я уже пробовал:
Код:
protected void btnValues_Click(object sender, EventArgs e) { string strDDLValue = string.Empty; foreach (DropDownList ddl in pnlDepartment.Controls.OfType<DropDownList>()) { strDDLValue = ddlName.SelectedItem.Text + "," + ddlLocation.SelectedItem.Text; } }
Kornfeld Eliyahu Peter
1. динамически создаваемые элементы управления должны быть повторно созданы на каждом пост-бэк (полном или частичном)
2. Вы предоставили нам гораздо меньше информации, чем нужно!!!
ZurdoDev
Питер прав. Нам нужно увидеть больше соответствующего кода.
Anuragintit
&ЛТ;в ASP:GridView в идентификатор="GvList" атрибут runat="сервер" autogeneratecolumns="false" - в onrowdatabound="GvList_RowDataBound" showfooter="правда"и GT;
<колонки>
<asp:templatefield headertext="идентификатор Центра измерений">
<itemtemplate>
&ЛТ;АСП:метка идентификатор="CenterId" атрибут runat="сервер" текст="&ЛТ;%#Ивала("CenterId") %&ГТ;" включена="ложно"и GT;
<headerstyle width="4%" horizontalalign="Center" cssclass="thead_cell">
<itemstyle horizontalalign="Center" width="4%">
<asp:templatefield headertext="сегодняшние данные">
<itemtemplate>
&ЛТ;АСП:текстовое поле с ID="txt_lastyearonDate_Rain" атрибут runat="сервер" текст="&ЛТ;%#Ивала("py_raintoday") %&ГТ;" ondrop="возвращение ложным;" onpaste="возвращение ложным;"
автозаполнение="выкл.">
<controlstyle width="90%">
<headerstyle width="4%" horizontalalign="Center" cssclass="thead_cell">
<itemstyle horizontalalign="Center" width="4%">
<footertemplate>
&ЛТ;АСП:метка идентификатор="lbl_pytoday" атрибут runat="сервер" цвет="черный" стиль="дисплей:блок; обивка:0; текст-выровняйте: центр"&ГТ;
<asp:templatefield headertext="Select Type">
<itemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="ddl_type" атрибут runat="сервер"и GT;
<controlstyle width="100%">
<headerstyle width="3%" horizontalalign="Center" cssclass="thead_cell">
<itemstyle horizontalalign="Center" width="3%">
------------------------------------------------------------------------------------------------
Кодовая Сторона
охраняемых недействительными GvList_DataBound(объект отправителя, EventArgs в электронной)
{
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Заголовок, DataControlRowState.Обычный);
Ячейка TableHeaderCell = новая ячейка TableHeaderCell();
ячейка.Text = "Подробности";
ячейка.ColumnSpan = 3;
ряд.Управления.Добавить(ячейка);
ячейка = новый TableHeaderCell();
ячейка.Text = "Год 2018";
ячейка.ColumnSpan = 4;
ряд.Управления.Добавить(ячейка);
ячейка = новый TableHeaderCell();
ячейка.ColumnSpan = 4;
ячейка.Text = "Год 2019";
ряд.Управления.Добавить(ячейка);
ячейка = новый TableHeaderCell();
ячейка.Text = "Другие";
ячейка.ColumnSpan = 4;
ряд.Управления.Добавить(ячейка);
// ряд.BackColor = ColorTranslator.FromHtml("#3AC0F2");
GvList.Строку заголовка.Родитель.Управления.AddAt(0, строка);
}
------------------------Отправить нажмите кнопку--------------------
foreach (строка GridViewRow в GvList.Rows)
{
Label CenterId = (метка)строка.FindControl("CenterId") в качестве метки;
строка CenterId_no = CenterId.Текст;
Dropdownlist ddl = (DropDownList)строка.FindControl("ddl_type") как выпадающий список;
строка dropdown_value = ddl.SelectedValue;
TextBox txt_lastyearonDate_Rain = (текстовое поле)строка.FindControl("txt_lastyearonDate_Rain") в виде текстового поля;
поплавок py_ondte = поплавок.Синтаксический анализ(txt_lastyearonDate_Rain.Текст);
}
-----------------