¿Qué diferencia hay?

23/04/2010 - 19:09 por Martín | Informe spam
Hola:

Tengo unas líneas de código

1 - strtabla="ejemplo"
2 - CType(Me.FindControl("objds" & strtabla),
ObjectDataSource).Selectparameters("ww1")

Quisiera saber si hay alguna diferencia entre la línea 2 y esta línea de
código

3 - Me.objdsejemplo.Selectparameters("ww1")

A mi modo de ver, no hay ninguna. La más eficiente es la 3, pero puedo tener
hasta 12 objectdatasource, por eso uso la 2 normalmente, para hacer un bucle.

Pues resulta que si pongo la 2 me sale un error:

Referencia a objeto no establecida como instancia de un objeto.

¿Sabeis qué puede fallar?

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Leandro Tuttini
23/04/2010 - 23:12 | Informe spam
las dos son formas de acceder o encontrar o acceder a un control, solo
que el punto 2 es algo asm indirecto, se usa usa cuando los cotnroels
se crean dinamicamente, o esta contenidos dentro de otros objectos que
no tienen un acceso directo

en tu caso si el control esta en tu forma el punto 3 es tu opcion

por el error seguramente se deba a que el nombre que el proporcionas
no este del todo correcto

prueba hacer lo siguiente

Dim control As ObjectDataSource = TryCast(Me.FindControl("objds" &
strtabla),
ObjectDataSource)

If control Is Nothing Then
LabelError.Text = "No se ha encontrado el control"
Else
control.Selectparameters("ww1")
End If

como veras el TryCast sino encuentra el control devuelve Nothing, y
podras vlaidarlo luego sin que la aplicacion lance una exception

saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida