Zoria |
oleginn | Zoria | Скажу больше :) Динамически создаваемые контролы нужно восстанавливать (т.е создавать и добавлять на страницу) при каждом постбэке, в обработчике события станицы не позднее Page_Load, и присваивать им те же ID, что и при первом добавлении на страницу. |
И даже больше )) Свойства динамических контролов, которые восстанавливаются автоматически (например, Value у TextBox) не перебиваются даже на Page_Load и приходится все это делать на PreRender. В общем, тут довольно много всяких "сюрпризов", с которыми приходится бороться то там то сям)) |
а вот это вы что-то тучи сгущаете. примерчик покажите-ка?:) |
ASPX:
......
<form id="form1" runat="server">
<div>
<asp:PlaceHolder runat=server ID="ph"></asp:PlaceHolder><br /><br />
<input type="submit" runat=server id="submit" value="Submit" />
</div>
</form>
......
ASPX.CS:
......
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox tb1 = new TextBox();
ph.Controls.Add(tb1);
tb1.Text = ""; // чистим текстбокс
}
/*
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
TextBox tb1 = (TextBox)ph.Controls[0];
tb1.Text = ""; // чистим текстбокс
}
*/
}
================================
Если исполнить в таком варианте, то после постбэка значение текстбокса не очистится.
Если разкоментить, то очистится. Так вот))
Модератор: Отредактировано используйте тэг SRC |