ASP.NET 母版页内容页的 ID 全部更改,破坏了基于原始元素 ID 的 CSS?你在跟我开玩笑吗

Posted

技术标签:

【中文标题】ASP.NET 母版页内容页的 ID 全部更改,破坏了基于原始元素 ID 的 CSS?你在跟我开玩笑吗【英文标题】:ASP.NET Master Page Content Page's IDs all changed, breaking CSS based on original element IDs? Are you kidding me 【发布时间】:2011-07-26 12:47:51 【问题描述】:

ASP.NET 母版页内容页面的元素似乎都被 ASP.NET 页面呈现器更改或添加了 ID。

这会破坏所有基于原始元素 ID 的 CSS 样式。

这是真的吗?如果是这样,有没有办法解决它?

【问题讨论】:

【参考方案1】:

是的,您可以指定ClientIDMode 将其设置为静态。

例子

客户端

<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>

代码背后

TextBox txtBox = new TextBox();
txtBox.ID = "TextBox1";
txtBox.ClientIDMode = ClientIDMode.Static

通过将其设置为静态...

ClientID 值设置为 ID 属性的值。如果控件是命名容器,则该控件将用作其包含的任何控件的命名容器层次结构的顶部。


更新 感谢 @Chris Lively 提供更多信息


页面级别

<%@ Page Language="C#" ClientIDMode="Static" AutoEventWireup="true"...

应用级别

<system.web>
    <pages clientIDMode="Static"></pages>
</system.web>

参考文献

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

http://beyondrelational.com/blogs/hima/archive/2010/07/16/all-about-client-id-mode-in-asp-net-4.aspx

【讨论】:

请注意这是在 ASP.net 4.0 中引入的 另外,也可以在web.config的部分对整个项目进行控制。 @Chris,我没有意识到这一点。谢谢!【参考方案2】:

我认为您需要使用ClientID 属性而不是ID 属性。

文档:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx

【讨论】:

我不确定这对链接样式表是否有帮助 @Jon P,它会的。 ClientID 生成 DOM 元素的 ID,它由链接的样式表格式化。

以上是关于ASP.NET 母版页内容页的 ID 全部更改,破坏了基于原始元素 ID 的 CSS?你在跟我开玩笑吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.net 页面中获取母版页的 Div?

ASP.NET内容页中访问母版页中的对象

Asp.net 如何取母版页的属性及控件及方法调用求解答

asp.net 从内容页面更改母版页部分 css

asp.net 从内容页面更改母版页部分 css

WebFrom 母版页