繁体   English   中英

有没有一种方法可以防止contentplaceholder的ID影响ASP.NET中的子ID?

[英]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非常困难

如果要更改整个网站的行为,可以通过设置ClientIDModeweb.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM