动态创建<div>元素而不会覆盖其ID </div>

时间:2012-10-15 15:05:13

标签: c# asp.net

我有一个<div>元素,我想动态添加一些HTML <a>元素。那部分似乎工作得很好。这是HTML:

<div id="crumbBar" runat="server"/>

在我的代码中,添加HTML锚点按预期工作;但是,当页面呈现时,id将更改为“workArea_crumbBar”(这都在母版页中)。

我尝试使用相应的ID在<div>内动态创建<div>,但这也将id加上'workarea _'。

我有其他代码依赖于<div>元素的id。有没有办法阻止IIS更改主要或嵌套元素的ID?

1 个答案:

答案 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年后,我永远不必使用此属性。可能有其他选择。