![](/img/trans.png)
[英]Get values of Dynamically Created Controls inside Asp.Net Gridview C#
[英]Unable to get values of dynamically created controls c#
我已经在单击按钮时创建了动态控件,但无法检索动态创建的控件的值。 我正在面板内获取动态控件的值。
pnlDepartment
是面板ID。
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;
}
}
strDDLValue
仅具有第一个下拉列表值,并且在第二次循环时仍会采用第一个下拉列表值,并且无法获取动态控制值。
如果我在某个地方犯了错误,请纠正我。
更新的代码:
string strDDLValue = string.Empty;
foreach (DropDownList ddl in pnlDepartment.Controls.OfType<DropDownList>())
{
strDDLValue = ddl.SelectedItem.Text;
}
您尚未使用dll变量。 如果pnlDeportment中的foreach循环仅包含名称。 您将必须使用此方法。
protected void btnValues_Click(object sender, EventArgs e)
{
string strDDLValue = string.Empty;
foreach (DropDownList ddl in pnlDepartment.Controls.OfType<DropDownList>())
{
strDDLValue = ddl.SelectedItem.Text
}
}
否则,您必须创建两个添加名称下拉列表的列表和一个添加位置的列表。
在页面的初始位置初始化列表。
List<DropDownList> ddlNames;
List<DropDownList> ddlLocations;
protected void btnValues_Click(object sender, EventArgs e)
{
if (dllNames.Count() == ddlLocations.Count())
{
for (int i = 0; i < ddlNames.Count(); i++)
{
strDDLValue = string.Format("{0},{1}",
ddlNames[i].SelectedItem.Text,
ddlLocations[i].SelectedItem.Text );
}
}
}
确保通过以下方式获得所需的控件列表:
int i = 0;
foreach (DropDownList ddl in pnlDepartment.Controls.OfType<DropDownList>())
{
i++;
ddl.SelectedItem.Text = string.Format("Found:{0}",i);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.