2011-07-06 32 views
0

我有一個表格,它有一個基於數據庫搜索的動態創建的不同大小的標籤數組。我遇到的問題是,當用戶搜索不同的術語時,看起來有些標籤沒有獲得新的值。這裏是我的代碼添加標籤:想要在vb中回發刪除dynamiclly創建的標籤asp.net

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潛艇上有出售任何,但也有效果。我不知道它是否可能與回發後具有相同ID的控件有關。

任何幫助將不勝感激。

+0

由於我還沒有足夠的積分來回答,下面是我的解決方案:當我創建動態標籤時,我需要禁用viewState。 – spuppett

回答

0

明白了。當我創建動態標籤時,我需要禁用標籤的viewState。

locLabel.EnableViewState = False 
0

你需要做這樣的事情:

Me.Controls.Remove(controlName) 
+0

我在哪裏可以做到這一點,是不同的,然後我在page_load/page_init嘗試? – spuppett

+0

你可能會遍歷頁面上的所有控件,比如說page_load,並刪除所有標籤控件。 – developerdoug

+0

剛剛嘗試過int page_load並且沒有改變。 For i = 0 To Panel1.Controls.Count - 1 Me.Controls.Remove(Panel1.Controls(i)) Next – spuppett