如何通过ID设置ASP.NET HTML服务器控件的样式?

时间:2015-06-02 15:29:57

标签: css asp.net

当我在ASP.NET 4.5中使用HTML server control创建ID并使用CSS来设置ID样式时,它会失败。当我检查ASPX页面的来源时,它会显示ASP.NET已更改我的控件ID。在这种情况下......

<div id="PasswordStatus" class="well well-sm" runat="server">
  Current
</div>

... ...变为

<div id="article_PasswordStatus" class="well well-sm">
  Current
</div>

我是否可靠(并考虑到最佳做法)只为CSS创建#article_PasswordStatus样式?或者我应该为它创建一次性CSS类,类似于......

<div id="PasswordStatus" class="well well-sm password-status">
  Current
</div>

最好,我还能以某种方式使用我指定的原始ID吗?

注意:我想要将其转换为Web服务器控件。

3 个答案:

答案 0 :(得分:2)

假设.net 4及更高版本,您可以使用ClientIDMode。您的HTML就像这样

<div id="PasswordStatus" class="well well-sm" runat="server" ClientIDMode="Static">
    Current
</div>

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

答案 1 :(得分:1)

添加begin选项以确保您的客户端ID不会更改。 可以找到信息here

ClientIDMode="Static"

此选项强制控件的ClientID直接使用其ID值。根本没有应用命名容器命名,最终会得到干净的客户端ID

答案 2 :(得分:0)

使用css样式的类而不是ID通常是最佳实践。你可以避免这样的问题,重用你的css等等,这将是我选择的路径。

asp.net(webforms)中的ID可以通过各种方式进行修改,我个人也不会依赖它。