2011-07-06 31 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