私の DataListItem 型が C# コード ビハインドの RadioButton 型であるかどうかを判断できるようにしたいと考えています。
これは可能ですか?
あるいは、DropDownList 型でない場合は、それも機能します。
などのチェック方法はありませんか?
if(item.ItemType.Equals(HtmlInputRadioButton)){
//
}
私の DataListItem 型が C# コード ビハインドの RadioButton 型であるかどうかを判断できるようにしたいと考えています。
これは可能ですか?
あるいは、DropDownList 型でない場合は、それも機能します。
などのチェック方法はありませんか?
if(item.ItemType.Equals(HtmlInputRadioButton)){
//
}
最良のオプションは次のとおりです。
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 つのキャストが発生するため、効率が低下します。
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;
}
}