我有一个<div>
元素,我想动态添加一些HTML <a>
元素。那部分似乎工作得很好。这是HTML:
<div id="crumbBar" runat="server"/>
在我的代码中,添加HTML锚点按预期工作;但是,当页面呈现时,id将更改为“workArea_crumbBar”(这都在母版页中)。
我尝试使用相应的ID在<div>
内动态创建<div>
,但这也将id加上'workarea _'。
我有其他代码依赖于<div>
元素的id。有没有办法阻止IIS更改主要或嵌套元素的ID?
答案 0 :(得分:1)
尝试改变你的div:
<div id="crumbBar" runat="server" ClientIDMode="Static" />
实际上,这不是IIS而是ASP.Net Framework的行为。控件在树中组织,最终的客户端ID将是所有祖先ID连接的结果。
目标是避免两个控件之间的ID冲突。冲突的一个示例是您创建用户控件时,例如:<asp:label id="mylbl" runat="server" />
。如果您实例化两次用户控件,则两个控件将在客户端具有相同的Id而不会出现此行为。
这意味着您必须谨慎使用此属性,否则会导致一些模糊的问题。如果可以,你应该寻找另一种解决方案。在构建.Net应用程序12年后,我永远不必使用此属性。可能有其他选择。