Мне нужно пройти через все элементы управления на моей веб-странице asp.net и сделать что-то для элемента управления. В одном случае я делаю гигантскую строку из страницы и отправляю ее по электронной почте, а в другом случае я сохраняю все в куки.Прокрутите все элементы управления на веб-странице asp.net
Проблема заключается в мастер-страницах и предметах с коллекциями элементов управления внутри них. Я хочу, чтобы у меня была возможность передать страницу методу, тогда этот метод будет достаточно общим, чтобы перебирать все элементы управления на самой внутренней странице контента и работать с ними. Я попытался сделать это с рекурсией, но моя рекурсия неполна.
Я хочу передать объект страницы в метод и пропустить этот метод через все элементы управления на самой внутренней странице содержимого. Как я могу это достичь?
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/уловом
объекта не задана ссылка на экземпляр объекта.
На линии ControlID = .....
Какая ошибка вы получаете? – 2010-11-23 19:25:21
Нет ошибки, моя строка просто не имеет записей, представляющих каждый элемент управления. – MAW74656 2010-11-23 19:26:01
Причина, по которой вы не получаете сообщение об ошибке, заключается в том, что у вас есть блок try/catch, скрывающий ее. Удалите это и посмотрите, что произойдет. – 2010-11-23 19:52:48