Сохранять динамически добавленные элементы управления в 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>