Ошибка при удалении всех дочерних элементов управления из родительского элемента управления. - PullRequest
0 голосов
/ 19 августа 2010

У меня есть следующая страница aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="newsEditor.aspx.cs" Inherits="ExpertSiteV2.newsEditor" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Assembly="ExpertSiteV2" Namespace="ExpertSiteV2" TagPrefix="custom" %>
<asp:Content ID="Content3" ContentPlaceHolderID="Main" runat="server">
    <asp:Panel ID="Panel1" runat="server">
        <asp:Panel ID="Panel2" runat="server" Width="660" Style="margin-bottom: 10px;">
            <asp:Label ID="Label1" runat="server" Text="Label" Width="150">Заголовок новости</asp:Label>
            <asp:TextBox ID="newsTitle" runat="server" Width="500" Style="float: right;"></asp:TextBox>
        </asp:Panel>
        <custom:CustomEditor ID="Editor3" runat="server" Height="300" Width="660" BackColor="White" />
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Panel ID="Panel3" runat="server" Style="margin-top: 5px;" CssClass="buttonPanel">
            <asp:ImageButton ID="SaveImageButton1" runat="server" ImageUrl="img/save_32.png"
                ToolTip="Сохранить новость" />
            <asp:LinkButton ID="SaveLinkButton1" runat="server" ToolTip="Сохранить новость">Сохранить</asp:LinkButton>
            <asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" ImageUrl="img/block_32.png"
                PostBackUrl="news.aspx" ToolTip="Вернуться к странице новостей" />
            <asp:LinkButton ID="LinkButton2" runat="server" ToolTip="Вернуться к странице новостей"
                CausesValidation="False" PostBackUrl="news.aspx">Отмена</asp:LinkButton>
        </asp:Panel>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Заголовок должен быть заполнен!"
            ControlToValidate="newsTitle" Display="Dynamic">
        </asp:RequiredFieldValidator>
    </asp:Panel>
</asp:Content>

Я хочу удалить все содержимое Panel1.Я пишу код:

Panel1.Controls.Clear();

Но это не работает, и я получаю сообщение:

Страница не может быть нулевой.Убедитесь, что эта операция выполняется в контексте запроса ASP.NET.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.InvalidOperationException: Страница не может быть нулевой.Убедитесь, что эта операция выполняется в контексте запроса ASP.NET.

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информацию о происхождении и местонахождении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

Трассировка стека:

[InvalidOperationException: страница не может быть нулевой.Убедитесь, что эта операция выполняется в контексте запроса ASP.NET.]
System.Web.UI.ScriptManager.get_IPage () +373832 System.Web.UI.ScriptManager.OnPagePreRenderComplete (Отправитель объекта, EventArgs e.1026 *

Что не так?Как мне сделать это правильно?

Ответы [ 2 ]

0 голосов
/ 19 августа 2010

Хорошо, я написал что-то вроде этого:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
CodeBehind="newsEditor.aspx.cs" Inherits="ExpertSiteV2.newsEditor" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Assembly="ExpertSiteV2" Namespace="ExpertSiteV2" TagPrefix="custom" %>
<asp:Content ID="Content3" ContentPlaceHolderID="Main" runat="server">
    <asp:Panel ID="Panel4" runat="server">
        <asp:Panel ID="Panel1" runat="server">
            <asp:Panel ID="Panel2" runat="server" Width="660" Style="margin-bottom: 10px;">
                <asp:Label ID="Label1" runat="server" Text="Label" Width="150">Заголовок новости</asp:Label>
                <asp:TextBox ID="newsTitle" runat="server" Width="500" Style="float: right;"></asp:TextBox>
            </asp:Panel>
            <custom:CustomEditor ID="Editor3" runat="server" Height="300" Width="660" BackColor="White" />
            <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
            </asp:ToolkitScriptManager>
            <asp:Panel ID="Panel3" runat="server" Style="margin-top: 5px;" CssClass="buttonPanel">
                <asp:ImageButton ID="SaveImageButton1" runat="server" ImageUrl="img/save_32.png"
                    ToolTip="Сохранить новость" />
                <asp:LinkButton ID="SaveLinkButton1" runat="server" ToolTip="Сохранить новость">Сохранить</asp:LinkButton>
                <asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" ImageUrl="img/block_32.png"
                    PostBackUrl="news.aspx" ToolTip="Вернуться к странице новостей" />
                <asp:LinkButton ID="LinkButton2" runat="server" ToolTip="Вернуться к странице новостей"
                    CausesValidation="False" PostBackUrl="news.aspx">Отмена</asp:LinkButton>
            </asp:Panel>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Заголовок должен быть заполнен!"
                ControlToValidate="newsTitle" Display="Dynamic">
            </asp:RequiredFieldValidator>
        </asp:Panel>
    </asp:Panel>
</asp:Content>

Вот еще одна панель, которая содержит все.И я написал:

Panel4.Controls.Clear();

Работает отлично.Я до сих пор не знаю, почему Panel1 не хочет удалять дочерние элементы управления.Если кто-то знает, просто напишите ответ.

0 голосов
/ 19 августа 2010

Разве вы не можете просто спрятать панель?Panel1.Visible = false.почему ты хочешь убрать управление

...