Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: NetJava en 24 Enero 2013, 11:57 am



Título: FindControl buscar controles
Publicado por: NetJava en 24 Enero 2013, 11:57 am
Buenas a todos,

Tengo un problemilla, explico un poco la situación.
En una página aspx.vb he creado un montón de controles dinámicos, por ejemplo un panel_contenedor que a su vez tiene un montón de panels_grupos, cada panel_grupo contiene 3 panels y cada uno de estos controles; listbox, textbox, button.

Cuando se presiona el botón es fácil, ya que se crea el evento y se identifica el botón a través de él cuando se presiona, el problema el relacionar los controles listbox y textbox a ese botón. Bueno miento, no relacionar, si no coger la información.

Se supone que la vía es buscar esos controles con FindControls, si yo a un botón le doy el valor B777 y se que su listbox va a tener L777, solo con el botón sé cuál buscar, pero no consigo encontrar el control xD.

- No se si la idea que tengo es erronea.
- A lo mejor esq al estar tan anidados los panels, ese es el problema.

¿Qué se os ocurre?

Un saludo y muchas gracias!


Título: Re: FindControl buscar controles [Solucionado]
Publicado por: NetJava en 24 Enero 2013, 12:47 pm
Solucionado.

Bueno, lo primero que he hecho ha sido ponerle a todos los controles un ID (TextBox.ID = "algo") y ya esta, después el siguiente código:

Código:
Dim t As TextBox

If Page.Master IsNot Nothing Then
For Each control As Control In Page.Master.Controls
If TypeOf control Is HtmlForm Then
For Each controlform As Control In control.Controls
If TypeOf controlform Is ContentPlaceHolder Then
t = DirectCast(controlform.FindControl("TextBox1"), TextBox)
If t IsNot Nothing Then
Exit For
End If
End If
Next
End If
Next
Else
t = DirectCast(Page.FindControl("TextBox1"), TextBox)
End If

http://geeks.ms/blogs/lruiz/archive/2007/07/30/findcontrol-retorna-null-nothing-en-una-masterpage.aspx (http://geeks.ms/blogs/lruiz/archive/2007/07/30/findcontrol-retorna-null-nothing-en-una-masterpage.aspx)

En la web esta en C#, lo he puesto en vb. Un saludo a todos!