如果我有一个如下所示的占位符:
<asp:contentplaceholder ID="Body" runat="server"></asp:contentplaceholder>
在其中有几个具有ID属性的runat="server"
元素,然后我得到这样的结果:
<span id="Body_T966DB943018">
<div id="Body_T966DB943007_ctl00_ctl00_main"></div>
</span>
有没有办法设置我的contentplaceholder
,使输出显示如下:
<span id="T966DB943018">
<div id="T966DB943007_ctl00_ctl00_main"></div>
</span>
(注意所有生成的ID中缺少“Body_”)
如果你想知道我为什么要问......
我正在使用Sitefinity。默认情况下,您可以在后端GUI中设置模板。这就是该网站最初的构建方式。
后一种HTML结构是CMS在页面上生成模板的方式。 CSS和JS的初始构造使用了这些生成的ID。现在我们添加了一个主模板文件,我们需要为Sitefinity的内容添加一个默认的contentplaceholder
。
我需要找到一种方法来使用此默认占位符(如上所示ID="Body"
不会影响其子ID的ID。
答案 0 :(得分:1)
最好重做你的CSS并且更合适,因为你可以看到维护那些ID非常困难
答案 1 :(得分:0)
如果您想更改整个网站的行为,可以通过设置ClientIDMode在web.config
中执行此操作。
<configuration>
<system.web>
<pages clientIDMode="Static" />
</system.web>
<configuration>
或在页面级别。
<%@ Page ClientIDMode="Static" %>
或在个人控制级别。
<asp:Label runat="server" ClientIDMode="Static" />
请注意,您需要确保您的客户ID是唯一的,以避免冲突。