我在母版页上写了<div id="div_Head" runat="server">,但是在浏览器查看生成的html代码就变成了<div id="ctl00_div_Head">。如果js和css要用到这个id的话,也要改成ctl00_div_Head。大家是怎么处理这样的情况的?
之所以要写成<div id="div_Head" runat="server">,是因为这个div在后台里会动态添加web用户控件,所以不能去掉runat="server"。
谢谢大家。

解决方案 »

  1.   

    CSS的话 指定class吧。 或者 #父控件id divjs的话, 如果需要调用用<%=divid.ClientId%>获取他的客户端id
      

  2.   

    <%=div_Head.ClientID%>
    调用客户端的ID
      

  3.   

    客户端这样使用
    var divID = "<%=div_Head.ClientID%>";调用的地方写,包括js文件也可以
    document.getElementById(divID )
      

  4.   

    要么直接看源码改ID要么就用<%=div_Head.ClientID%>得到客户端ID
      

  5.   

    document.getElementById(“<%=div_Head.ClientID%>");
      

  6.   

    ClientID 表示由服务器端生成的客户端控件的ID,   为防止命名冲突,ASP.NET 为各个服务器控件生成一个唯一的 ClientID ,ClientID 通过将子控件的父控件的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以下划线 _ 连接。
      

  7.   

    你要不想变id,有办法啊,采用asp.net mvc框架,就不会变; 
      

  8.   

    可以直接把ID改成ctl00_div_Head  
    否则<%=div_Head.ClientID%>得到客户端ID
      

  9.   

    1.要么在这个div外面套一个div ,这样的话有可能影响到搜索引擎抓取。
    2.要么使用<%=div_Head.ClientID%>,这个也可以写在css文件和js文件里吗?每次访问页面,服务器都会解析css文件和js文件吗?
      

  10.   

    顾名思义,<%=div_Head.ClientID%>就是div_Head的客户端ID,在你这个例子里,它就是div_Head
    用了母版页,ID会加上母版页的烙印,就像ctl00_div_Head,在aspx页面的js里,你可以用ctl00_div_Head和<%=div_Head.ClientID%>都行,推荐后者但是在单独的CSS和js文件里,就不能识别<%=div_Head.ClientID%>了,CSS部分,你可以指定一个类<div id="div_Head" class="c1" runat="server">,
    js部分,你可以在aspx调用js方法时,把值到参数传进去,如:onclick="func(<%=div_Head.ClientID%>"