У меня есть пользовательский элемент управления, который динамически загружается на страницу после выполнения обратной передачи в UpdatePanel.
Затем я выполняю другую обратную передачу для сохранения, где я хотел бы получить доступ к пользовательскому вводу для элементов управления в этом пользовательском элементе управления (например, сетка с флажком в каждой строке).
Упрощенный пример, если этот сценарий будет выглядеть следующим образом:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div><asp:Button ID="ButtonAdd" runat="server" Text="Add User Control" OnClick="ButtonAdd_OnClick" /></div>
<div id="divContent" runat="server"></div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div><asp:Button ID="ButtonSave" runat="server" Text="Save" OnClick="ButtonSave_OnClick" /></div>
</ContentTemplate>
</asp:UpdatePanel>
И
protected void ButtonAdd_OnClick(object sender, EventArgs e)
{
MyUserControl uc = Page.LoadControl("MyUserControl.ascx") as MyUserControl;
divContent.Controls.Add(uc);
}
protected void ButtonSave_OnClick(object sender, EventArgs e)
{
// Hopefully, get controls from within the user control's grid and save their input
}
Проблема в том, что после нажатия кнопки сохранения пользовательский элемент управления исчезает. Это понятно, и у меня нет проблем с его созданием и добавлением снова - но я хочу получить доступ к пользовательскому вводу и сохранить его. Как я могу это сделать?