如题,为什么会name的值会更改为跟id一样的?不加ruanat=“server”的话,查看源码是没变化的想了解下原理,哪位大虾解释下。

解决方案 »

  1.   

    有时,不能为控件分配唯一的名称。例如,如果 Repeater 控件在它的某个模板中包含一个 Label 控件,则为 Repeater 控件中的各个项呈现该 Label 控件的一个实例。在呈现控件的多个实例时,为防止出现命名冲突,ASP.NET 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。生成的 ID 的各个部分以下划线字符 (_) 分隔。http://msdn.microsoft.com/zh-cn/library/system.web.ui.control.clientid(VS.80).aspx
      

  2.   


    我说的是name的值改变了,id在某些情况下更改我是懂的
      

  3.   

    看反了你的问题,这个你要看HtmlInput的源代码
      

  4.   

    ruanat 改为 runat 即可。。哈哈 开玩笑服务器控件跟 HTML控件之间的差距。。
      

  5.   


    我就想知道原理,为什么加上了runat=“server”的话,就会改变,网上查了下,没查到这方面的资料
      

  6.   

    你想的是要id不一样.name值一样是吧...还要把控件注册..生成出来结果是一样是吧,,,我也常见到这种问题.但一直没解决过..如解决再看.
      

  7.   

    比如:
      <input id="ckb_1" name="sp_1" runat="server"/>
    生成之后的源代码为
      <input id="ckb_1" name="ckb_1" runat="server"/>而 <input id="ckb_1" name="sp_1" />
    生成之后的源代码为
    <input id="ckb_1" name="sp_1" />就是这个意思了。不解。
      

  8.   

    http://developer.51cto.com/art/200908/141256.htm
      

  9.   

    如果你把控件button放入另一个控件中panle,aspnet会避免控件id重复自动给button的id加上panle的id的。
      

  10.   

    一个表单必须拥有唯一的名字,未指定名字时asp.net会自动分配一个。可以通过ID或Name属性给Form设置标识,同时设置时以ID属性优先。可是有一点要注意,一些编程接口使用Name属性来兼容xhtml。在xhtml中,elements通过ID标识而不是Name,因此通常来讲,最好以ID属性为准。