У меня есть div, который является runat = "server".Div содержится в панели, а внутри div находятся некоторые элементы управления.Все элементы управления за пределами div (но внутри панели) очищаются, когда я запускаю свой метод ClearControlsInPanel (), который выглядит следующим образом:
public static void ClearControlsInPanel(Panel paneltoclear, string[] ignorelist)
{
foreach (Control c1 in paneltoclear.Controls)
{
if (c1 is TextBox)
{
if (!ignorelist.Contains(c1.ID.ToString()))
{
((TextBox)c1).Text = "";
}
}
if (c1 is DropDownList)
{
if (!ignorelist.Contains(c1.ID.ToString()))
{
((DropDownList)c1).SelectedIndex = 0;
}
}
//etc.
}
}
Как только div достигнут, я не вижуэлементы управления в нем, и, следовательно, ни один из этих элементов управления не очищается.По иронии судьбы я нашел парня, который написал сообщение о том же точном , Почему при добавлении runat = server к тегу div возникает исключение типа 'System.Web.HttpException в коллекции элементов управления? Но поток заканчивается, без реального решения или объяснения.
Полное исключение:
base {System.Web.UI.HtmlControls.HtmlContainerControl} = {InnerText =
'((System.Web.UI.HtmlControls.HtmlContainerControl)
(((System.Web.UI.HtmlControls.HtmlGenericControl)(paneltoclear.Controls._controls
[165])))).InnerText' threw an exception of type 'System.Web.HttpException'}
Пожалуйста, предположите, что это должен быть div сервера runat, и его нельзя изменить напанель.(Я почти уверен, что его замена на панель решит эту проблему, но у нас есть другие требования, которые требуют, чтобы это был серверный сервер runat (длинная история)).