Мне нужно пройти через все элементы управления на моей веб-странице asp.net и что-то сделать с элементом управления . В одном случае я делаю гигантскую строку из страницы и отправляю ее себе по электронной почте, а в другом случае я сохраняю все в файл cookie.
Проблема заключается в мастер-страницах и элементах с коллекциями элементов управления внутри них. Я хочу иметь возможность передавать Page в метод, а затем сделать этот метод достаточно универсальным, чтобы перебирать все элементы управления на самой внутренней странице содержимого и работать с ними. Я пробовал сделать это с помощью рекурсии, но моя рекурсия не завершена.
Я хочу передать объект Page в метод, чтобы этот метод проходил через все элементы управления на самой внутренней странице содержимого. Как я могу этого добиться?
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();
}
Без Try / catch
Ссылка на объект не соответствует экземпляру объекта.
On line controlID = .....