zoukankan      html  css  js  c++  java
  • AjaxControlTookit中的AutoCompleteExtender位置错位问题 ListSearchExtender不支持中文的问题

    今天在一个2.0的项目里用AutoCompleteExtender,开始的时候没发现什么错误,后来麻烦接踵而至。无论如何调试,AutoCompleteExtender自动完成的列表都和文本框对不起来,位置错位,比如文本框在上面,自动完成列表跑到下面去了,如下图:

    在一个页面中使用多个AutoCompleteExtender时更是乱七八糟。为了搞清楚到底是什么原因,开始逐一排查。把设置的css删掉,还是错位。然后新建了一个test页面,copy同样的代码进去,没想到竟然是正常的!这是为什么呢?

    然后又把页面删除,重新添加控件,一个一个的加,但就算只加一个AutoCompleteExtender,也是错位的。这就奇怪了。

    后来终于想到了,因为是后台管理的界面,在测试的时候,正式的页面是在框架里面,而test那个页面是直接运行的。把正式页面在新窗口中打开,这下终于正常了。

    看来AutoCompleteExtender控件与框架页有冲突。目前还没找到解决办法,实在不行,只能打开个新窗口编辑了。

    浪费了一晚上的时间!tmd

    目前发现ListSearchExtender控件也会出现这种问题,提示语会位置错乱,估计也是对框架页支持不好。

    ps:对于ListSearchExtender不支持中文的问题,网上搜的一篇文章:

    http://www.cnblogs.com/hhq80/archive/2008/03/19/1113048.html

    使用ListSearchExtender时,发现输入中文没有显示,分析了一上ListSearchBehavior.js,发现_isNormalChar函数上有一个e.charCode>6000,而汉字的编码范围是19968~40869,这个函数把如果是汉字,就返回false,即不提示显示,将代码改这如下即可正常显示汉字了:


      _isNormalChar : function(e) {
            /// <summary>
            /// Returns true if the specified charCode is a key rather than a normal (displayable) character
            /// </summary>
            /// <param name="e" type="Sys.UI.DomEvent">
            /// Event info
            /// </param>
            /// <returns type="Boolean" />

            // Walking through Sys.UI.Keys won't work -- Ampersand is code 38 which matches
            if (Sys.Browser.agent == Sys.Browser.Firefox && e.rawEvent.keyCode) {
                return false;
            }

            if (Sys.Browser.agent == Sys.Browser.Opera && e.rawEvent.which == 0) {
                return false;
            }

            //if (e.charCode && (e.charCode < Sys.UI.Key.space || e.charCode > 6000)) {//修改前的
            if (e.charCode && (e.charCode < Sys.UI.Key.space)) {//修改后的
                return false;
            }
            return true;
        },

    这个需要重新把源代码编译一下。很久之前应该做过,记在这里备忘。

    网上的空间很少有能支持到.net3.5之上的,大部分还是2.0,真是很麻烦啊

  • 相关阅读:
    Java虚拟机JVM学习05 类加载器的父委托机制
    java 接口
    java 抽象类
    代码块(2)
    获取超额收益的思考
    HttpServer
    交易过程思考
    A股时间窗口
    redash学习记录
    MySQL学习记录
  • 原文地址:https://www.cnblogs.com/yanxiaodi/p/2296480.html
Copyright © 2011-2022 走看看