• Asp.net 控件ClientID,UniqueID命名规则问题


    我写了一个aspx页面,放一个GridView,GridView中添加一个模板列,其中放入一个LinkButton,显示数据

    现在的问题是

    1)本地开发机器上
    生成的该LinkButton的ID,Name分别是

    ID: GridView1_ctl02 _lbtnSel
    Name: GridView1$ctl02$ lbtnSel

    2)部署服务器上
    生成的该LinkButton的ID,Name分别是

    ID: GridView1__ctl2 _lbtnSel
    Name: GridView1$_ctl2 $lbtnSel

    经过比较,本地机器上生成的ID和Name都正常,ClientID使用一个下划线_分隔,UniqueID用一个$分隔,其中 ctl02 表示GridView第二行
    但服务器上生成的ID和Name就有点不对了,虽然ClientID还是用一个下划线_分隔,UniqueID用一个$分隔,但其中GridView第二行的表示方式有明显的不同,它是 _ctl2

    服务器上将02改成了2,并且用下划线开头表示

    这是为什么?这个问题导致了页面的部分JS代码不能正常运行了,因为连ID和Name的规则都发生了变化,一直找不到原因,请教大家,谢谢。

    运行环境 .net 版本2.0.50727,Win2003

    解决办法:

    在web.config 中,去掉 <xhtmlConformance   mode= "legacy“/>  属性

    详见页面http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNETusStan.mspx 
    为了满足每个人的要求,Microsoft   创建了一个名为   xhtmlConformance   的新配置选项,您可以在   Web   站点的配置文件中设置该选项。新的配置选项使您能够指定   Web   页的   XHTML   一致性的级别。它的内容如下所示。 

    <configuration>   
    <system.web>   
            <xhtmlConformance     
                    mode= "transitional "   />   
    </system.web>   
    </configuration> 

    默认情况下,xhtmlConformance   设置为值   transitional。但是,还可以将该选项设置为值   strict   或   legacy。   

    如果将   xhtmlConformance   选项设置为   strict,那么标准的   ASP.NET   控件将不会再呈现某些属性。例如,ASP.NET   <form>   控件将不再呈现   name   属性。除非   ASP.NET   页包含(不符合标准的)客户端脚本,否则从   transitional   模式切换到   strict   模式时,不会注意到任何变化。   

    如果将   xhtmlConformance   选项设置为   legacy,那么对于某些元素和属性(但不是全部),ASP.NET   框架将恢复为   ASP.NET   1.1   呈现行为。在这种情况下,ASP.NET   框架将呈现不与任何   XHTML   标准兼容的内容,并且页将不再通过   XHTML   标准验证。例如,在   legacy   模式下,呈现   <br>   标记时不会呈现它需要的   XHTML   结束斜杠   ( <br   /> )。只有在将现有   ASP.NET   1.1   应用程序迁移到   ASP.NET   2.0   的过程中遇到问题时,将   xhtmlConformance   设置为   legacy   模式才是有意义的。 

  • 相关阅读:
    spark学习3(sqoop1.4.6安装)
    SpringBoot配置文件 application.properties详解
    十大经典算法
    JAVA中ACTION层, SERVICE层 ,MODLE层 和 DAO层的功能区分
    Spring Cloud 与 Spring boot
    Java 读取 .properties 配置文件的几种方式
    编程实现文件拷贝
    Java中的日期和时间
    遍历List集合的三种方法
    通过Collections将集合转换为线程安全类集合
  • 原文地址:https://www.cnblogs.com/invinboy/p/2067717.html
Copyright © 2020-2023  润新知