Мне нужна рекурсивная функция, которая найдет все элементы управления на странице и позволит мне добавить атрибуты элемента управления javascript в зависимости от типа элемента управления.
Проблема в том, что у меня есть страница с несколькими панелями, на которых есть элементы управления. Панели могут даже иметь вложенные панели / элементы управления.
К сожалению, следующее не делает то, что я хочу, но я ищу что-то подобное ...
Action<Control> traverse = null;
//in a function:
traverse = (ctrl) =>
{
//ctrl.Enabled = false; //or whatever action you're performing
foreach (Control c in ctrl.Controls)
{
Response.Write(c.GetType().ToString() + " : " + c.ID.ToString() + "<br />");
if (c.GetType() == typeof(TextBox))
{
((TextBox)(c)).Attributes["onKeypress"] = "javascript:return FormEdited();";
}
else if (c.GetType() == typeof(DropDownList))
{
((DropDownList)(c)).Attributes["onchange"] = "javascript:return FormEdited();";
}
else if (c.GetType() == typeof(CheckBox))
{
((CheckBox)(c)).Attributes["onClick"] = "javascript:return FormEdited();";
}
}
traverse = (ctrl2) => ctrl.Controls.GetEnumerator();
};