我希望能够确定我的 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
}
或者,您可以使用清除器
if(item is RadioButton)
{
var radio = (RadioButton)item;
}
但这会导致两次强制转换,效率较低。
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;
}
}