禁用Asp.Net自动命名

时间:2010-08-23 14:35:02

标签: asp.net

有没有办法禁用ASP.Net自动命名?

例如:当我的页面上有一个控件位于母版页内而不是被命名时

theLabel

将其重命名为

ctl00_ContentPlaceHolder1_clist0_rptSelected_ctl05_theLabel

这是我不想要的行为。

3 个答案:

答案 0 :(得分:5)

这是ASP.NET常见的问题。如果ASP.NET 4是您的选项,则可以使用新的ClientID功能来自定义命名约定。

更多信息,礼貌的顾:

http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx

答案 1 :(得分:3)

如果你足够幸运能够定位ASP.NET 4.0 ......

在您的页面指令中,设置ClientIDMOde="Static"。这将完全像您在控件中一样发出ID。

所以如果你有:

<asp:Label ID="example" runat="server" />

它会发出这个干净的ID:

<span id="example">something...</span>

答案 2 :(得分:1)

如果您正在使用ASP.NET 4.0,那么您可以。

否则,这很难。如果你想在javascript中使用客户端ID,你可以做这样的事情::

<script type="text/javascript">
    function DoSomething(){
        alert('<%= Control.ClientID %>');
    }
</script>