2011-08-16 82 views
3

在我的ASP.Net項目;我使用C#作爲後面的代碼。ASP NET - C#:訪問控制由Id

我的一個項目功能動態地創建一些文本框,可根據用戶的需求。每個文本框都有不同的ID。

我的問題是如何能夠訪問這些標識文本框?

讓說,創建文本框5,我怎麼可以編輯其中的一個專門的代碼?

貝婁的是,我用它來生成這些文本框的實際代碼:

int name_id = 1; 
foreach (WebApplication5.ServiceReference1.ClientData client in Clients) 
{ 
    TextBox1 = new TextBox(); 
    TextBox1.ID = name_id.ToString(); 
    TextBox1.Style["Position"] = "Absolute"; 
    TextBox1.Style["Top"] = y + "px"; 
    TextBox1.Style["Left"] = x + "px"; 
    TextBox1.Text = client.descricao; 
    Form.Controls.Add(TextBox1); 

    name_id++; 
    x = x + 10; 
    y = y + 10; 
} 
+0

你應該這些控制添加到[面板](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.aspx)或[佔位符](HTTP:/ /msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.placeholder%28v=VS.100%29.aspx)而不是直接轉到表單。這樣,更改佈局就更簡單了。 –

+0

你想從客戶端或服務器端訪問它們嗎? –

回答

11

可以在後面的代碼做到這一點;

TextBox tb1 = (TextBox)FindControl(name_id) 
0
TextBox tb = Form.FindControl(TextBox1.ID) as TextBox 

只有這樣的,振振有辭,爲什麼你不能ID直接訪問是他們缺席的*了.Designer.cs。