Я добавляю элементы управления на страницу программно в коде позади. Я добавляю asp: Label и устанавливаю его текстовое значение. Я добавляю asp: TextBox и устанавливаю его значение Text. Оба текстовых значения возвращаются в ответе и отображаются в браузере. Пока все хорошо.
Пользователь выполняет действие, которое вызывает обратную передачу. Я перезагружаю динамически добавленные asp: Label и asp: TextBox. Когда Ответ возвращается в браузер, отображается только текстовое значение asp: TextBox. Значение asp: Label Text не равно.
Если я проверяю HTML, я вижу элемент управления asp: Label (отображается как тег span HTML), но без значения.
Как я могу получить код для автоматической повторной загрузки текстового значения asp: Label при каждой обратной передаче? Почему поведение asp: Label и asp: TextBox отличается? Я не хочу вручную переустанавливать значение Text для каждой обратной передачи.
Вот код, похожий на то, что я делаю (placeHolderNameplates - это элемент управления asp: PlaceHolder на странице aspx):
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
If Not Page.IsPostBack Then
Dim lbl As Label = New Label()
lbl.ID = "xxx1"
lbl.Text = "yo"
placeHolderNameplates.Controls.Add(lbl)
Dim tb As TextBox = New TextBox
tb.ID = "xxx2"
tb.Text = "yoyo"
placeHolderNameplates.Controls.Add(tb)
Else
Dim lbl As Label = New Label()
lbl.ID = "xxx1"
placeHolderNameplates.Controls.Add(lbl)
Dim tb As TextBox = New TextBox
tb.ID = "xxx2"
placeHolderNameplates.Controls.Add(tb)
End If