You can place a placeholder in your aspx file and add linkButtons to it Dynamically. But since you are adding linkButtons dynamically and during a button click event they will be gone in the next postback. You have to manually retain/re-add the linkButtons in each postback. I have used Viewstate in this sample.
HTML Code:
<asp:textbox id="txtLinkText" runat="server" ></asp:textbox>
<asp:button id="btnAddLink" runat="server" text="Add"
onclick="btnAddLink_Click" /></asp:button>
<asp:placeholder id="placeHolderLinks" runat="server">
</asp:placeholder>
Code Behind:
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["LinkButtonTextList"] != null)
{
List<string> LinkButtonTextList = (List<string>)ViewState["LinkButtonTextList"];
foreach (string lnkText in LinkButtonTextList)
{
LinkButton lnkDynamic = new LinkButton();
lnkDynamic.Text = lnkText;
lnkDynamic.Click += lnkDynamic_Click;
placeHolderLinks.Controls.Add(lnkDynamic);
}
}
}
protected void btnAddLink_Click(object sender, EventArgs e)
{
if (txtLinkText.Text != "")
{
LinkButton lnkDynamic= new LinkButton();
lnkDynamic.Text = txtLinkText.Text;
lnkDynamic.Click += lnkDynamic_Click;
placeHolderLinks.Controls.Add(lnkDynamic);
List<string> LinkButtonTextList;
if (ViewState["LinkButtonTextList"] == null)
LinkButtonTextList = new List<string>();
else
LinkButtonTextList = (List<string>)ViewState["LinkButtonTextList"];
LinkButtonTextList.Add(txtLinkText.Text);
ViewState["LinkButtonTextList"] = LinkButtonTextList;
}
}
protected void lnkDynamic_Click(object sender, EventArgs e)
{
}
Hope this helps.
if you do not understand why we have to re-add the controls
this article[
^] is a great place to start.