Ho un metodo che trova tutti i controlli, scorre attraverso di essi, determina se sono una casella di testo, un elenco a discesa, ecc. Recupera il nome dell'ID e in base al nome dell'ID imposterà una dichiarazione booleana (quindi vorrei sapere se quella sezione del modulo è completa, e invierò una mail ad un certo gruppo di persone) sfortunatamente questo è fatto con troppe dichiarazioni if e mi chiedevo se potevo ottenere un aiuto per rendere questo più gestibileUn modo migliore? Trovare i controlli ASP.NET, trovando il loro 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;
}
}
}
}
}
}
Non penso che sia una buona idea usare i caratteri jolly nei nomi di controllo come questo eccetto * forse * quando si sviluppa un controllo personalizzato davvero disordinato attraverso il compositing. –
Sto sviluppando un controllo personalizzato davvero disordinato heh .. Ho bisogno di passare attraverso un modulo, determina se alcuni campi sono stati compilati e in base a ciò determina chi riceverà solo alcune parti del modulo. – Spooks
forse il problema potrebbe essere ripensato e quindi ridisegnato. Vuoi sapere quali porzioni di un modulo sono complete? Stai aggiungendo dinamicamente i controlli al tuo modulo? Cosa definisce una sezione completa di un modulo - l'esistenza di un controllo con id = pippo? – earthling