2010-01-25 26 views
2

我有一個在頁面中重複多次的控件。我希望每個事件都有一個我將定義的唯一ID(不是可怕的ID asp.net附加)。問題是我只會在運行時間知道ID。ASP.Net 3.5:指定控件的HTML ID

我想在.aspx編寫如下:

<uc8:MyControl ID="<%=THEID%>" runat="server" /> 

,但我知道這是行不通的。什麼是正確的方法來解決這個問題?

非常感謝!

回答

1

您可以添加的代碼:

MyControl control = new MyControl(); 
control.ID == "myControl" + count.ToString(); 
ph.Controls.Add(control); 

其中Ph - 佔位符或面板控制,計數 - 一些櫃檯。

0

更好地從後面的代碼添加控件,添加一個面板,然後添加控件。

0

不幸的是,您現在在ASP.NET 3.5中遇到了.NET ID。除非您想在運行時以編程方式添加控件,否則只能讀取該ID,因爲它將出現在客戶端上。你經常需要做一些客戶端技巧來找到正確的控制。

一旦要使表單508符合,我必須分析.NET似乎用來給我的嵌套控件提供id的模式並嘗試預測它。它似乎過去一年工作;我保持手指交叉。或者,你可以在運行時得到的ClientID屬性,並將其寫入到一個隱藏字段,就像這樣:

<input id='SpecialControlID' type='hidden' value='<%= SpecialControl.ClientID %>'>

那麼你的JavaScript可以確定ID。總之,沒有什麼好的方法,只有討厭的黑客方式。在運行時最容易添加控件。

希望與VS2010,你有選擇,以改善這一點。您可以將控件的設置更改爲使用指定的ID,或者簡化.NET用於確定id的算法,以便更加可預測。這是一個good link