2011-03-02 63 views
0

我通過遍歷數組:如何在ASP.NET中動態構造控件名稱?

Dim dbConfig As New pbu_housingEntities 
    Dim possible() As String = {"FROD", "FRCD", "SOOD", "SOCD", "JROD", "JRCD", "SROD", "SRCD", "SR5OD", "SR5CD"} 
    For Each value As String In possible 
     Dim current_value = value 
     Dim exists = From p In dbConfig.Configs _ 
        Where p.Description = current_value 
        Select p 

     If exists.Count.Equals(0) Then 
      Dim create As New Config 
      create.Description = current_value 
      dbConfig.Configs.AddObject(create) 
      dbConfig.SaveChanges() 
     Else 
      Dim update_query = (From p In dbConfig.Configs _ 
           Where p.Description = current_value _ 
           Select p) 
      update_query.First.Description = current_value 
      update_query.First.dateValue = 
     End If 
    Next 

邁向數組的結尾可以看到update_query.First.dateValue =,我想要做這樣的事情:

update_query.First.dateValue = "txt" + current_value + ".Text" 

但我不希望它返回文本txtcurrent_value.Text,而是返回txtcurrent_value.Text的文本值。這是很容易做到,如果你知道每個控件的名字 - 但在這種情況下,我迭代,否則我可以這樣做:

update_query.First.dateValue = txtNameofControl.Text 

回答

2

獲取像這樣控制一個參考:

TextBox tb = Page.FindControl("txt" + current_value) as TextBox; 
update_query.First.dateValue = tb.Text; 
+0

我使用這段代碼,但遇到了一個問題...... tb值總是變成「Nothing」 - 儘管我知道一個控件存在「txt」+ current_value作爲它的名字! – davemackey 2011-03-03 16:12:55

+0

如果您使用的是MasterPage,找到控件的路徑有點不同。我不知道它在我頭頂,但我會說只是不斷嘗試去實現它。嘗試MasterPage.Page.Controls.FindControl或其變種。 – TheGeekYouNeed 2011-03-03 17:25:58