我有一个DataListItem,它可能是一个下拉列表或一个文本框。要获得我需要做的价值:
CType(item.FindControl("myControl"), TextBox).Text
或者
CType(item.FindControl("myControl"), DropDownList).SelectedValue.ToString()
问题是,如果它是一个下拉列表我得到..
无法投射类型的对象 'System.Web.UI.WebControls.DropDownList' 输入 'System.Web.UI.WebControls.TextBox'。
有没有办法在Ctyping之前检查CType是否需要?
答案 0 :(得分:1)
使用TryCast:
Dim txt as TextBox = TryCast(item.FindControl("myControl"), TextBox)
If txt Is Nothing Then
TryCast(item.FindControl("myControl"), DropDownList)
End If