Я не знаю, лучший способ, к сожалению, но я могу вам сказать, что Я делал это в веб-формах, когда использовал их.
Я сделал PlaceHolder, где я мог сбросить элементы управления на лету. Я сделал UserControl, который можно было повторить снова и снова, у которого были публичные свойства. Я завернул UpdatePanel вокруг PlaceHolder и привязал событие click, связанное с UpdatePanel, чтобы пользователь имел опыт AJAX.
Ниже приведена краткая сводная версия кода. Я могу дать вам полный источник, если вы хотите. Дай мне знать.
<script runat="server">
void aspx_Init(object sender, EventArgs e)
{
AddCreditCardReceiptButton.Click += new EventHandler(AddCreditCardReceiptButton_Click);
}
void AddCreditCardReceipt()
{
AddCreditCardReceipt(this.ID + "_" + Guid.NewGuid().ToString("N").Substring(0, 5));
}
void AddCreditCardReceiptButton_Click(object sender, EventArgs e)
{
AddCreditCardReceipt();
CreditCardReceipt lastAdded = (CreditCardReceipt)CreditCardReceiptPH.Controls[CreditCardReceiptPH.Controls.Count - 1];
lastAdded.ContainerStyle = "display:none";
ScriptManager.RegisterStartupScript(lastAdded, typeof(CreditCardReceipt), lastAdded.ClientID,
"$('#CreditCardReceipt_" + lastAdded.ClientID + "').toggle(500);", true);
}
</script>
<asp:UpdatePanel runat="server" id="CreditCardReceiptUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:PlaceHolder ID="CreditCardReceiptPH" runat="server" />
<asp:Button runat="server" ID="AddCreditCardReceiptButton" CausesValidation="false" Text="(+) Add Credit Card Receipt" /></div>
</ContentTemplate>
Это MVC или веб-формы или матричный стиль? –
Извините, что я поместил неправильный тег (winforms, который был отредактирован), это веб-формы – Burt