Глядя, чтобы удалить динамически созданные метки при обратной передаче в vb asp.net - PullRequest
0 голосов
/ 06 июля 2011

У меня есть форма, которая содержит массив динамически создаваемых меток различного размера на основе поиска в базе данных.У меня проблема в том, что когда пользователь ищет другой термин, похоже, что некоторые метки не получают новых значений.Вот мой код для добавления меток:

If rdr.HasRows Then
        ReDim Preserve entities(cnt)
        While rdr.Read()
            entities(cnt) = New Label()
            If getNodeType(txtSearch.Text) = "command" Then
                entities(cnt).Text = rdr("name").ToString
            Else
                entities(cnt).Text = rdr("command").ToString
            End If
            entities(cnt).ID = "entity" & cnt
            Panel1.Controls.Add(entities(cnt))
            place_label(entities(cnt), cnt)
            cnt += 1
            ReDim Preserve entities(cnt)
        End While
    End If

Я пробовал зацикливаться на элементах управления в panel1, чтобы избавиться от любых неподвижных объектов в подпрограммах page_load и page_init, но ни один из них не дал эффекта.Я не знаю, может ли это быть связано с элементами управления, имеющими такие же идентификаторы после обратной передачи.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 08 июля 2011

Понял. Когда я создавал динамические метки, мне нужно было отключить viewState для меток.

locLabel.EnableViewState = False
0 голосов
/ 06 июля 2011

Вам нужно будет сделать что-то вроде этого:

Me.Controls.Remove(controlName)
...