我有一个控件,在页面中重复多次。我希望每次出现都有一个我将定义的唯一ID(不是asp.net附带的可怕ID)。问题是我只会在运行时知道ID。
我想在.aspx中写下以下内容:
<uc8:MyControl ID="<%=THEID%>" runat="server" />
但我知道它不起作用。什么是正确的方法来解决这个问题?
非常感谢!
答案 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