[英]Is there a way to prevent the contentplaceholder's ID from affecting child ID's in ASP.NET?
如果我有一个看起来像这样的占位符:
<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。 现在我们已经添加了一个主模板文件,我们需要把默认contentplaceholder
用于Sitefinity的内容。
我需要找到一种方法来使用此默认占位符(如上所示,其ID="Body"
以不影响其子代的ID。
重做CSS会更好,并且更合适,因为您会看到维护这些ID非常困难
如果要更改整个网站的行为,可以通过设置ClientIDMode在web.config
进行操作。
<configuration>
<system.web>
<pages clientIDMode="Static" />
</system.web>
<configuration>
或在页面级别。
<%@ Page ClientIDMode="Static" %>
或在个别控制级别。
<asp:Label runat="server" ClientIDMode="Static" />
请记住,您需要确保自己的客户ID唯一以避免冲突。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.