首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用DataListItem的情况下找到FindControl项类型?

如何在不使用DataListItem的情况下找到FindControl项类型?
EN

Stack Overflow用户
提问于 2013-09-10 21:33:58
回答 2查看 490关注 0票数 0

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

这个是可能的吗?

或者,如果它不是DropDownList类型,也会工作。

有没有办法检查一下,比如

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 21:38:59

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

代码语言:javascript
复制
  public enum ListItemType
  {
    Header,
    Footer,
    Item,
    AlternatingItem,
    SelectedItem,
    EditItem,
    Separator,
    Pager,
  }

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

代码语言:javascript
复制
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;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-09-10 21:38:44

最佳选择是:

代码语言:javascript
复制
var radio = item as RadioButton;
if(null != radio)
{
    // It's a radio button!
    // The "as" keyword will return null if the cast fails
}

或者,您可以使用更清晰的

代码语言:javascript
复制
if(item is RadioButton)
{
    var radio = (RadioButton)item;
}

但这导致了两种类型的转换,但效率较低。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18729107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档