Desea recorrer todos los controles de usuario que existen en la página y obtener sus ID. ¿Cómo lo hago?Pasa por todos los controles de usuario en una página
Respuesta
Para obtener cada control de usuario, que lo tienes que probar el tipo de control:
EDIT: he modificado mi ejemplo que pasar por todos los controles de forma recursiva:
Método
public void GetUserControls(ControlCollection controls)
{
foreach (Control ctl in controls)
{
if (ctl is UserControl)
{
// Do whatever.
}
if (ctl.Controls.Count > 0)
GetUserControls(ctl.Controls);
}
}
Llamado
GetUserControls(Page.Controls);
Nah. Eso no funciona –
¿Qué no funciona al respecto? – CAbbott
if (curControl es UserControl) nunca es verdadero. Y tengo un usercontrol en la página –
foreach(Control control: Page.Controls)
{
//do something with control object
}
Pero luego, pasa por todos los controles. ¿Cómo se puede diferenciar un control de usuario? GetType() ?? –
Los controles se pueden anidar, por lo que necesita una función recursiva para recorrer todos los controles. –
Esto debería funcionar:
var listOfUserControls = GetUserControls(Page);
...
public List<UserControl> GetUserControls(Control ctrl)
{
var uCtrls = new List<UserControl>();
foreach (Control child in ctrl.Controls) {
if (child is UserControl) uCtrls.Add((UserControl)child);
uCtrls.AddRange(GetUserControls(child);
}
return uCtrls;
}
creé un método de extensión para hacer esto, que funciona muy bien con LINQ.
<Extension()>
Public Function DecendentControls(ParentControl As Control) As Control()
Dim controls As New List(Of Control)
For Each myControl As Control In ParentControl.Controls
controls.Add(myControl)
controls.AddRange(myControl.DecendentControls)
Next
Return controls.ToArray
End Function
Luego, con LINQ se puede hacer algo como esto para establecer todas las casillas en una página y no marcado:
For Each myControl As CheckBox In pnlMain.DecendentControls.Where(Function(x) TypeOf x Is CheckBox)
myControl.Checked = False
Next
- 1. Deshabilitar todos los controles de formulario en una página web
- 2. ¿Cómo desactivo todos los controles en la página ASP.NET?
- 3. Carga asincrónica de controles de usuario en una página
- 4. Recorrer todos los controles en la página web asp.net
- 5. Buscar todos los controles que son visibles para el usuario
- 6. Detectar todos los cambios (realizados por el usuario) al texto en controles en el formulario
- 7. ASP.NET MVP - Utilizando los controles de usuario
- 8. ¿Qué pasa con "DataContext = this" en los controles de usuario de WPF?
- 9. ¿WPF tiene controles equivalentes para todos los controles de Winforms?
- 10. Pasa por todos los recursos en ResourceManager - C#
- 11. Pasa por todos los recursos en un archivo .resx
- 12. ¿Encontrar todos los controles en un panel de ASP.NET?
- 13. Obtener todos los controles Web de un tipo específico en una página
- 14. Uso excesivo de ASP.Net de los controles de usuario
- 15. Webforms de ASP.NET, JavaScript en los controles de usuario
- 16. WPF: ¿Cómo recorro todos los controles en una ventana?
- 17. Vinculación de bibliotecas de JavaScript en los controles de usuario
- 18. En Perforce, liste todos los conjuntos de cambios por usuario
- 19. ¿Cómo puedo eliminar dinámicamente todos los controles en un control de usuario?
- 20. Web.config ¿Es posible registrar todos los controles de usuario en el directorio especificado
- 21. Cómo recorrer todos los controles en un formulario, incluidos los controles en un subformulario - Access 2007
- 22. Incrustar archivos .wav en la página HTML en todos los navegadores (sin controles)
- 23. ASP.NET control de usuario no inicializa los controles secundarios
- 24. Encapsulando controles de usuario en ASP.NET MVC
- 25. Cómo orientar todos los controles (Estilos WPF)
- 26. Método genérico para encontrar todos los controles TextBox en Silverlight
- 27. Cuando publico una página ASP.NET, ¿puedo representar los diversos controles en la página en paralelo?
- 28. Deshabilitar todos los controles dentro de div en asp.net
- 29. ¿Cómo habilitar al usuario para arrastrar/soltar los controles de usuario de WPF en cualquier lugar de la página?
- 30. Todos los controles son nulos dentro de usercontrol
¿Es esta WinForms, WPF o ASP.NET? Sospecho que esto último, pero nunca se sabe. – ChrisF
Por "controles de usuario" ¿quiere decir * controles gestionados * o específicamente controles de usuario (.ascx)? – CAbbott
@ChrisF: ¡Adivinas bien! ASP.Net es @CAbbott: .ascx –