参见英文答案 >
How can I get the selected item of a dropdownlist,the first time my page loads?4个
我试图在我的页面上获取所有下拉列表,并在每个下拉列表中选择所选项目文本/值.但我似乎错过了一些东西. @H_502_3@foreach (DropDownList dr in this.Page.Form.Controls.OfType<DropDownList>()) { foreach (ListItem li in dr.Items) { if (li.Selected) { //put the selected items value/text into something. } } }
我试图在我的页面上获取所有下拉列表,并在每个下拉列表中选择所选项目文本/值.但我似乎错过了一些东西. @H_502_3@foreach (DropDownList dr in this.Page.Form.Controls.OfType<DropDownList>()) { foreach (ListItem li in dr.Items) { if (li.Selected) { //put the selected items value/text into something. } } }
有没有想过这样做?
编辑:使其更清晰.我有一个随机数量的DropDownLists,我可以选择1个选项pr Dropdownlist.当我按下按钮时,我需要从每个DropDownLists中选择的内容中获取信息. (DropDownLists上没有ID,有一个随机数).
解决方法
@H_502_3@protected void Button1_Click(object sender,EventArgs e)
{
List<DropDownList> lst = new List<DropDownList>();
GetDropDownControls(GetListOfControlCollection(this.Form.Controls),ref lst);
foreach (DropDownList item in lst)
{
var selectedValue = item.SelectedValue;
//to do something with value
}
}
void GetDropDownControls(List<Control> controls,ref List<DropDownList> lst)
{
foreach (Control item in controls)
{
if (item.Controls.Count == 0 && item is DropDownList)
lst.Add((DropDownList)item);
else
if (item.Controls.Count > 0)
GetDropDownControls(GetListOfControlCollection(item.Controls),ref lst);
}
}
List<Control> GetListOfControlCollection(ControlCollection controls)
{
List<Control> result = new List<Control>();
foreach (Control item in controls)
{
result.Add(item);
}
return result;
}