Я действительно ценю идею загрузить его на лету.
Но вы должны загружать его только тогда, когда это необходимо, и утилизировать его, как только вы закончите, или нажать кнопку во второй раз, утилизировать его и удалить элемент управления, а затем снова загрузить его ... В противном случае он всегда останется в вашемRAM .... и может вызвать утечку памяти ..
Пример HTML
<asp:Table runat="server" ID="MainTable">
<asp:TableRow>
<asp:TableCell ID="cell1" runat="server">
<asp:Button runat="server" Text="Button 1" ID="btn1" OnClick="btn1_Click" />
<asp:Button runat="server" Text="Button 2" ID="btn2" OnClick="btn2_Click" />
<asp:Button runat="server" Text="Button 3" ID="btn3" OnClick="btn3_Click" />
</asp:TableCell>
<asp:TableCell ID="cell2" runat="server">
</asp:TableCell>
</asp:TableRow>
</asp:Table>
При нажатии кнопки
cell2.Controls.Add(Your User Control ID);
РЕДАКТИРОВАТЬ - 1
cell2.Controls.Clear();
cell2.Controls.Add(Your User Control ID);