asp.net:阻止生成服务器控件ID 问题
使用asp.net服务器控件时,会自动生成以下id属性asp.net:阻止生成服务器控件ID 问题,asp.net,html,controls,standards,Asp.net,Html,Controls,Standards,使用asp.net服务器控件时,会自动生成以下id属性 <img id="ctl00_body_ULRepeater_ctl01_LIRepeater_ctl00_PartImg" src="img.png" /> 虽然我一般不反对id属性,但我尽量避免使用这些不必要的冗长类型的名称,并使用简洁、描述性的名称 问题 我可以阻止asp.net生成这些id属性吗?它们看起来很糟糕,如果我用转发器或其他东西生成很多项目,它们实际上会增加一点页面权重
<img id="ctl00_body_ULRepeater_ctl01_LIRepeater_ctl00_PartImg" src="img.png" />
虽然我一般不反对id属性,但我尽量避免使用这些不必要的冗长类型的名称,并使用简洁、描述性的名称
问题
我可以阻止asp.net生成这些id属性吗?它们看起来很糟糕,如果我用转发器或其他东西生成很多项目,它们实际上会增加一点页面权重。我怎样才能摆脱它们
笔记
我正在Visual Studio 2008中使用asp.net 3.0
[更新]
好的,我可以说子类ClientID是可重写的,但这真的没有意思。我可以在任何地方使用文字控件。或者,我可以咬紧牙关,忍受页面呈现速度慢得让人痛苦,而页面上几乎没有任何内容。我相信asp.net 4.0中的一个功能将是更好地控制生成的ID。现在,您将获得任何服务器生成的控件的名称mangling。这就是允许asp.net保证控件ID唯一性的原因
为了避免此问题,您可以始终使用纯HTML标记donotrunat=server。但是,如果要创建一个更轻量级的页面,您将牺牲其易用性。我相信asp.net 4.0中的一个功能将是更好地控制生成的ID。现在,您将获得任何服务器生成的控件的名称mangling。这就是允许asp.net保证控件ID唯一性的原因
为了避免此问题,您可以始终使用纯HTML标记donotrunat=server。但是,如果要创建一个更轻的页面,您将牺牲其易用性。到目前为止,ControlID是只读属性。在即将发布的ASP.NET Web表单和.NET 4.0中,这将是一个可设置的属性,使用多种不同的方法,如静态、继承等。到目前为止,ControlID是只读属性。在即将发布的ASP.NET Web Forms with.NET 4.0中,这将是一个可设置的属性,使用多种不同的方法,如static、inherit等。通过在运行时将每个控件的id属性设置为null,可以完全隐藏这些id属性,例如
Private Sub repeNewsletters_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles repeNewsletters.ItemDataBound
If e.Item.DataItem Is Nothing Then
Return
End If
Dim hlDetails = DirectCast(e.Item.FindControl("hlDetails"), System.Web.UI.WebControls.HyperLink)
hlDetails.ID = Nothing
end sub您可以通过在运行时将每个控件的id属性设置为null来完全隐藏这些id属性,例如
Private Sub repeNewsletters_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles repeNewsletters.ItemDataBound
If e.Item.DataItem Is Nothing Then
Return
End If
Dim hlDetails = DirectCast(e.Item.FindControl("hlDetails"), System.Web.UI.WebControls.HyperLink)
hlDetails.ID = Nothing
末端接头Ugh。我很害怕。似乎我大部分时间都无法在中继器中绕过它。谢谢你的回答,吉姆。我很害怕。似乎我大部分时间都无法在中继器中绕过它。谢谢你的回答,吉姆。真的吗?令人惊叹的你有相关文章的链接吗?@teedyay:包括一段视频,演示如何正确命名客户ID?令人惊叹的你有关于这方面的相关文章的链接吗?@teedyay:包括一段视频,演示了命名客户ID的不同方式