我有一个在页面中重复多次的控件。我希望每个事件都有一个我将定义的唯一ID(不是可怕的ID asp.net附加)。问题是我只会在运行时间知道ID。ASP.Net 3.5:指定控件的HTML ID
我想在.aspx编写如下:
<uc8:MyControl ID="<%=THEID%>" runat="server" />
,但我知道这是行不通的。什么是正确的方法来解决这个问题?
非常感谢!
我有一个在页面中重复多次的控件。我希望每个事件都有一个我将定义的唯一ID(不是可怕的ID asp.net附加)。问题是我只会在运行时间知道ID。ASP.Net 3.5:指定控件的HTML ID
我想在.aspx编写如下:
<uc8:MyControl ID="<%=THEID%>" runat="server" />
,但我知道这是行不通的。什么是正确的方法来解决这个问题?
非常感谢!
您可以添加的代码:
MyControl control = new MyControl();
control.ID == "myControl" + count.ToString();
ph.Controls.Add(control);
其中Ph - 占位符或面板控制,计数 - 一些柜台。
更好地从后面的代码添加控件,添加一个面板,然后添加控件。
不幸的是,您现在在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。
ASP.NET 4为 “可预见的客户端ID的” http://www.asp.net/learn/aspnet-4-quick-hit-videos/video-8845.aspx