如何在遍历控件时设置Dropdownlist特定的属性

本文关键字:Dropdownlist 属性 设置 遍历 控件 | 更新日期: 2023-09-27 18:26:36

我正在循环浏览asp:Panel的Controls集合,我不知道如何设置特定于某些控件的Properties。。。

例如,面板可能包含一个DropDownList,我希望能够设置并获取它的SelectedValue。或者它可能包含一个TextBox,我想设置并获取Text属性。

我用这个代码遍历:

foreach (Control control in panel.Controls)
{
    // ...
}

由于我只从中获得了一个基本控件,因此它似乎无法获取/设置这些属性中的任何属性,因为它们不是为基本控件定义的。

那么,该怎么办呢?

感谢

如何在遍历控件时设置Dropdownlist特定的属性

一种可能性是使用as运算符:

foreach (Control control in Controls) {
    TextBox txt = control as TextBox;
    if (txt!=null) {
        txt.Text = "bla";
        ...
    }
    ComboBox cbo = control as ComboBox;
    if (cbo!=null) {
        cbo.SelectedItem = ...
        ...
    }
    ...
}

注意:如果有一种类型的多个控件,则可以使用Tag属性来存储其他信息。虽然Tag是对象类型,但这里也需要as运算符。。。

您可以始终检查类型,然后将其强制转换为该类型。

foreach (Control control in Controls)
{
  if (control.GetType().Equals(typeof(DropDownList)))
  {
    ((DropDownList)control).Enabled = value;
  }
}

您应该能够像这样使用is运算符:

if(control is DropDownList)
{
    // Cast control as DDL and do your work
}