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
}

または、clearer を使用することもできます

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

しかし、それでは 2 つのキャストが発生するため、効率が低下します。

于 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 に答える