2013-04-09 68 views
0

我想循环通过面板中的每个控件,并清除所有内容,如果它是DropDownList。通过循环控件清除DropDownList

以下是我有:

private void ClearOut() 
{ 
    foreach (Control list in MainPanel.Controls) 
    { 
     if (list.ToString().Equals("System.Web.UI.WebControls.DropDownList")) 
     { 
      //Clear it out here 
     } 
    } 
} 

此代码找到每一个DropDownList的,但我无法弄清楚如何清除出来,一旦我到达那里。我不能像使用selectedindex或items.clear()一样使用DropDownList的任何属性。

回答

2
using System.Linq; 
using System.Web.UI.WebControls; 

foreach (DropDownList list in MainPanel.Controls.OfType<DropDownList>()) 
{ 
    list.Items.Clear(); 
} 

或相同,但手动:

foreach (Control c in MainPanel.Controls) 
{ 
    DropDownList list = c as DropDownList; 
    if (list != null) 
    { 
     list.Items.Clear(); 
    } 
} 
+0

好水溶液和您还需要()在OfType – 2013-04-09 18:13:07

+0

结束@ J-MAN:当然,谢谢,更新。 – abatishchev 2013-04-09 18:15:34

1

使用此:

if(list is DropDownList) 
{ 
DropDownList DDL = list as DropDownList; 
DDL.Items.Clear(); 
} 
+0

它不会编译。 – abatishchev 2013-04-09 18:03:12

+0

@abatishchev现在它会。我编辑过。 – Shaharyar 2013-04-09 18:05:13

+0

工作,谢谢。我投错了。 – 2013-04-09 18:10:37