В asp.net элементы управления в файле ASPX автоматически генерируются при каждой обратной передаче. Созданные вами элементы управления не содержатся в коде ASPX, поэтому инфраструктура не создает их для вас. При первом запуске метода Button1_Click на страницу добавляется один дополнительный элемент управления. Во второй раз, когда вы выполняете метод Button1_Click, вы возвращаетесь к другому сообщению, и об этой первой дополнительной кнопке забыли. В результате этого постбэка вы снова получаете одну дополнительную кнопку.
Это создаст один дополнительный элемент управления при каждом нажатии кнопки (хотя отметки времени будут обновляться при каждом нажатии кнопки, поскольку элементы управления создаются заново)
protected void Button1_Click(object sender, EventArgs e)
{
int count = 0;
if (ViewState["ButtonCount"] != null)
{
count = (int)ViewState["ButtonCount"];
}
count++;
ViewState["ButtonCount"] = count;
for (int i = 0; i < count; i++)
{
Literal literal = new Literal();
literal.Text = DateTime.Now.ToString();
literal.ID = DateTime.Now.Ticks.ToString();
UpdatePanel1.ContentTemplateContainer.Controls.Add(literal);
PlaceHolder1.Controls.Add(literal);
}
}