我有一个托管在GoDaddy上的网站,他们有4.0版运行时。 问题是服务器控件的客户端ID生成为“contentPlaceHolder1_drpBanks”,它早于(当网站位于其他服务器上时)生成为“ctl00_contentPlaceHolder1_drpBanks”。
我需要知道的是有一种解决方法,以便我不必对代码进行任何更改。
类似于web.config文件中的设置。
答案 0 :(得分:2)
将来使用<%=Control.ClientID%>
,每次都会成功解决 - 无需更改代码。
答案 1 :(得分:1)
ASP.NET 4.0中的控件具有ClientIDMode
属性。如果将其设置为AutoID
,ASP.NET应该像在ASP.NET 2.0中一样生成客户端ID。这是一个article,解释了不同的客户端ID模式。
除了在控制级别设置ClientIDMode
之外,您还可以在页面或应用程序级别设置它:
<%@ Page Language="C#" ClientIDMode ="AutoID" ... %>
或
<system.web>
<pages clientIDMode="AutoID" />
</system.web>
但我同意leppie的观点,即依赖生成的客户ID是危险的。