0

我希望能够确定我的 DataListItem 类型是否是后面 C# 代码中的 RadioButton 类型。

这可能吗?

或者,如果不是类型 DropDownList 也可以。

有没有办法进行某种检查,例如

if(item.ItemType.Equals(HtmlInputRadioButton)){ // }

4

2 回答 2

1

最好的选择是:

var radio = item as RadioButton;
if(null != radio)
{
    // It's a radio button!
    // The "as" keyword will return null if the cast fails
}

或者,您可以使用清除器

if(item is RadioButton)
{
    var radio = (RadioButton)item;
}

但这会导致两次强制转换,效率较低。

于 2013-09-10T21:38:44.680 回答
1

item.ItemType是一个枚举。类型永远不会是HtmlInputRadioButton

  public enum ListItemType
  {
    Header,
    Footer,
    Item,
    AlternatingItem,
    SelectedItem,
    EditItem,
    Separator,
    Pager,
  }

相反,代码应该是这样的 -

void Item_XXXX(Object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item ||
        e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // Make sure MyRadioButtonId is an ID of HtmlInputRadioButton
        var htmlInputRadioButton = e.Item.FindControl("MyRadioButtonId") 
          as HtmlInputRadioButton;
    }
}
于 2013-09-10T21:38:59.450 回答