Сохранять динамически добавленные элементы управления в PlaceHolder после обратной передачи

На своей странице asp.net я поместил элемент управления PlaceHolder, и после нажатия кнопки пользователь может разместить на нем некоторые элементы (например, другие элементы управления). Но после обратной передачи PlaceHolder снова пуст. Можно ли сохранить все программно добавленные элементы управления в PlaceHolder и очистить его только тогда, когда пользователь этого не хочет?

<div>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server" EnableViewState="true" ></asp:PlaceHolder>
</div>

<div>
    <asp:Button ID="Button1" runat="server" Text="addcontent" onclick="Button1_Click" />
</div>
<div>
    <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="postback" />
</div>

отделенный код

       protected void Button1_Click(object sender, EventArgs e)
    {
        Image newImage = new Image();
        newImage.ImageUrl = "~/bear.jpg";
        PlaceHolder1.Controls.Add(newImage);            
    }

Я хотел бы избежать переопределения SaveViewState и LoadViewState.

1 ответ

С помощью <asp:UpdatePanel />:

<asp:ScriptManager ID="scrpManager" runat="server" />
        <asp:UpdatePanel runat="server" ID="myUpdtPanel">   
            <ContentTemplate>
                <div>
                    <asp:PlaceHolder ID="PlaceHolder1" runat="server" EnableViewState="true" >

                    </asp:PlaceHolder>
                </div>

                <div>
                    <asp:Button ID="Button1" runat="server" Text="addcontent" onclick="Button1_Click" />
                </div>
                <div>
                    <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="postback" />
                </div>
            </ContentTemplate>         
        </asp:UpdatePanel>
Другие вопросы по тегам