Tengo un método que encuentra todos los controles, los repite, determina si son un cuadro de texto, una lista desplegable, etc. recupera su nombre ID, y dependiendo del nombre ID establecerá una declaración booleana (por lo tanto, sabría si esa sección del formulario está completa y enviará un correo electrónico a cierto grupo de personas) desafortunadamente, esto se hace con demasiadas declaraciones if y me preguntaba si podría obtener ayuda para hacer esto. más manejable¿Una mejor manera? Encontrar los controles ASP.NET, encontrar su ID
protected void getEmailGroup()
{
Control[] allControls = FlattenHierachy(Page);
foreach (Control control in allControls)
{
if (control.ID != null)
{
if (control is TextBox)
{
TextBox txt = control as TextBox;
if (txt.Text != "")
{
if (control.ID.StartsWith("GenInfo_"))
{
GenInfo = true;
}
if (control.ID.StartsWith("EmpInfo_"))
{
EmpInfo = true;
}
}
}
if (control is DropDownList)
{
DropDownList lb = control as DropDownList;
if (lb.SelectedIndex != -1)
{
if (control.ID.StartsWith("GenInfo_"))
{
GenInfo = true;
}
if (control.ID.StartsWith("EmpInfo_"))
{
EmpInfo = true;
}
}
}
}
}
}
No creo que sea una buena idea usar comodines en nombres de control como ese excepto * quizás * cuando desarrolle un control personalizado realmente complicado a través de la composición. –
Estoy desarrollando un control personalizado realmente complicado. Necesito revisar un formulario, determinar si se han completado ciertos campos y determinar quién recibirá solo ciertas partes del formulario. – Spooks
tal vez la declaración del problema podría ser repensada y, por lo tanto, controlar el rediseño. ¿Desea saber qué partes de un formulario están completas? ¿Está agregando dinámicamente controles a su formulario? ¿Qué define una sección completa de un formulario - la existencia de un control con id = foo? – earthling