Pregunta

Tengo un DataListItem que potencialmente puede ser una lista desplegable o un cuadro de texto. Para obtener el valor que tendría que hacer:

 CType(item.FindControl("myControl"), TextBox).Text

O

CType(item.FindControl("myControl"), DropDownList).SelectedValue.ToString()

El problema es que si es una lista desplegable, obtengo ...

  

No se puede emitir un objeto de tipo   'System.Web.UI.WebControls.DropDownList'   digitar   'System.Web.UI.WebControls.TextBox'.

¿Hay alguna forma de verificar si CType tomará antes de Ctyping?

¿Fue útil?

Solución

Use TryCast:

Dim txt as TextBox = TryCast(item.FindControl("myControl"), TextBox)
If txt Is Nothing Then
    TryCast(item.FindControl("myControl"), DropDownList)
End If
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top