none
这个被添加的前缀从何而来? RRS feed

  • 问题

  • 我定义了一个用户控件,控件内源码

    <ul id="menu_ul" runat="server">
    </ul>
    

    调用控件的代码

    <uc2:Menu id="menu1" runat="server"/>
    


    最后生成的html源码变成了这样

    <ul id="ctl00_menu1_menu_ul">
    </ul>
    

    这很奇怪,我不知道这个ct100是从何而来的,修改调用代码的id=“menu1”可以更改最终id中间的名字,但是这个ct100我找不到出处,这个非常奇怪

     

    2011年9月30日 10:50

答案

  • 那是.net 自己帮您加上去的

    只要您的控件放在NamingContainer里的,都会被加上prefix

     

    (NamingContainer例:MasterPage、UserControl、GridView, ListView, DataList...)

    要避免的方法有两种:

    1.runat="server" 且加上ClientIdMode="Static"

    2.runat="server"拿掉,ClientIdMode="Static"不用写


    Shadowと愉快なコード達


    2011年9月30日 12:42

全部回复

  • 那是.net 自己帮您加上去的

    只要您的控件放在NamingContainer里的,都会被加上prefix

     

    (NamingContainer例:MasterPage、UserControl、GridView, ListView, DataList...)

    要避免的方法有两种:

    1.runat="server" 且加上ClientIdMode="Static"

    2.runat="server"拿掉,ClientIdMode="Static"不用写


    Shadowと愉快なコード達


    2011年9月30日 12:42
  • 那是.net 自己帮您加上去的

    只要您的控件放在INamingContainer里的,都会被加上prefix

     

    (INamingContainer例:MasterPage、UserControl、GridView, ListView, DataList...)

    要避免的方法有两种:

    1.runat="server" 且加上ClientIdMode="Static"

    2.runat="server"拿掉,ClientIdMode="Static"不用写


    Shadowと愉快なコード達


    貌似这个ClientIdMode="Static"只有asp.net 4.0才支持?
    2011年9月30日 14:02


  • 貌似这个ClientIdMode="Static"只有asp.net 4.0才支持?

    是的
    Shadowと愉快なコード達
    2011年9月30日 18:00