我在按钮点击时创建了动态控件,但我无法检索动态创建的控件的值。我在面板中获得了动态控件的值。
pnlDepartment
是Panel 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;
}
答案 0 :(得分:0)
您还没有使用过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
}
}
另外,您必须创建两个列表,添加名称的下拉列表和位置的下拉列表。
在页面的init处初始化您的列表。
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);
}