ASP.Net 3.5:指定控件的HTML ID

时间:2010-01-25 14:15:01

标签: user-controls asp.net-3.5

我有一个控件,在页面中重复多次。我希望每次出现都有一个我将定义的唯一ID(不是asp.net附带的可怕ID)。问题是我只会在运行时知道ID。

我想在.aspx中写下以下内容:

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

但我知道它不起作用。什么是正确的方法来解决这个问题?

非常感谢!

4 个答案:

答案 0 :(得分:1)

您可以添加代码:

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

其中ph - 占位符或面板控制,计数 - 一些计数器。

答案 1 :(得分:0)

最好从代码中添加控件,添加一个面板,然后添加控件。

答案 2 :(得分: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

答案 3 :(得分:0)

ASP.NET 4具有“可预测的客户端ID”http://www.asp.net/learn/aspnet-4-quick-hit-videos/video-8845.aspx