2010-01-25 42 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