tengo que recorrer todos los controles en mi página web asp.net y hacer algo para el control. En un caso que estoy haciendo una cadena gigante de la página y enviarla por correo electrónico a mí mismo, y en otro caso estoy guardar todo en una cookie.Recorrer todos los controles en la página web asp.net
El problema es masterpages y los objetos de las colecciones de controles dentro de ellos. Quiero ser capaz de pasar de una página con el método, entonces ese método sea genérica suficiente para recorrer todos los controles en la página del centro de la mayoría de los contenidos y trabajar con ellos. Intenté hacer esto con la recursión, pero mi recursión es incompleta.
Quiero pasar un objeto de página en un método, y tienen ese método bucle a través de todos los controles en la página de contenido más profundo. ¿Cómo puedo conseguir esto?
private static String controlToString(Control control)
{
StringBuilder result = new StringBuilder();
String controlID = String.Empty;
Type type = null;
foreach (Control c in control.Controls)
{
try
{
controlID = c.ID.ToString();
if (c is IEditableTextControl)
{
result.Append(controlID + ": " + ((IEditableTextControl)c).Text);
result.Append("<br />");
}
else if (c is ICheckBoxControl)
{
result.Append(controlID + ": " + ((ICheckBoxControl)c).Checked);
result.Append("<br />");
}
else if (c is ListControl)
{
result.Append(controlID + ": " + ((ListControl)c).SelectedValue);
result.Append("<br />");
}
else if (c.HasControls())
{
result.Append(controlToString(c));
}
//result.Append("<br />");
}
catch (Exception e)
{
}
}
return result.ToString();
}
Sin try/catch
referencia a objeto no establecida como instancia de un objeto.
En la línea ID del control = .....
¿Cuál es el error que está obteniendo? –
No hay error, mi cadena simplemente no tiene entradas que representen todos los controles. – MAW74656
La razón por la que no está consiguiendo un error es porque tiene un bloque try/catch ocultarlo. Eliminar eso y ver qué pasa. –