我希望能够确定我的DataListItem类型是否是RadioButton代码后面的C#类型。
这个是可能的吗?
或者,如果它不是DropDownList类型,也会工作。
有没有办法检查一下,比如
if(item.ItemType.Equals(HtmlInputRadioButton)){ // }
发布于 2013-09-10 21:38:59
item.ItemType是一个enum。类型永远不会是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-10 21:38:44
最佳选择是:
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;
}但这导致了两种类型的转换,但效率较低。
https://stackoverflow.com/questions/18729107
复制相似问题