今天在一个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,真是很麻烦啊

转载于:https://www.cnblogs.com/yanxiaodi/archive/2010/07/17/2296480.html

AjaxControlTookit中的AutoCompleteExtender位置错位问题 ListSearchExtender不支持中文的问题...相关推荐

  1. Allegro中封装库中的封装更新到PCB中出现焊盘中心错位

    Allegro中封装库中的封装更新到PCB中出现焊盘中心错位 今天在画一个板子的时候,直接复制的上一个工程的LIB,在导入原理图网表更新后,焊盘中心出现错位. 使用的是一个锅仔片的封装,出现错误如下图 ...

  2. numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)

    numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array) 目录

  3. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)

    python使用matplotlib可视化线图(line plot).在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot) 目录

  4. R语言ggplot2包和ggtext包在可视化图像中的指定位置添加文本框(横向文本框、竖向文本框)

    R语言ggplot2包和ggtext包在可视化图像中的指定位置添加文本框(横向文本框.竖向文本框) 目录

  5. javascript 字符串中间隔固定位置插入字符

    javascript 字符串中间隔固定位置插入字符 代码: <!DOCTYPE html> <html lang="en"> <head>< ...

  6. inline-block元素出现位置错位的解决方法

    inline-block元素出现位置错位的解决方法 参考文章: (1)inline-block元素出现位置错位的解决方法 (2)https://www.cnblogs.com/mousea/p/792 ...

  7. sqlserver中计算某个特殊字符在字符串中出现的位置

    -- ============================================= -- Author: Evan -- Create date: 2018年3月15日10:59:45 ...

  8. java map 查找_在Java TreeMap中查找元素位置

    我正在使用StrMap TreeMap< String,String>的TreeMap,并使用它来实现词典. 然后我有一个文件的集合,并且想要在字典定义的向量空间(单词的空格)中创建每个文 ...

  9. Java 类中各成分加载顺序和内存中的存放位置

    一.什么时候会加载类? 使用到类中的内容时加载:有三种情况 1.创建对象:new StaticCode(); 2.使用类中的静态成员:StaticCode.num=9; StaticCode.show ...

最新文章

  1. 解决eclipse显示jar源代码中文乱码问题
  2. IT-标准化-系列-6.关闭事件跟踪程序
  3. 关于eclipse不编译项目的问题解决
  4. docker pull的镜像放在哪里_Docker 安装ELK及Docker常见命令
  5. linux gret 文件内容,DataX插件开发指南.docx
  6. bat替换文件中的字符串_JavaScript 中替换字符串的几种方法
  7. 「洛谷P2397」 yyy loves Maths VI (mode) 解题报告
  8. 关于IPV6审核被拒的完整分析
  9. ddos php源码,ddos PHP版_php
  10. mac safari无法打开网页_safari无法打开网页是什么原因?mac上的Safari浏览器打不开网页怎么办?...
  11. mac系统如何获取最好权限删除顽固文件?
  12. 用matlab抽样定理验证,实验一 MATLAB验证抽样定理
  13. bind服务12---分离解析
  14. 使用Excel制作证件照之替换背景色
  15. R语言windows函数自动生成可视化图像画布框、使用plot函数可视化数据点图、使用type参数指定数据点为实线
  16. 数据库:数据查询(指定的列、全部列、经过计算的值、消除重复的行、查询满足条件的元组、比较查询、范围查询、集合查询、字符匹配查询)
  17. 这套精美的开源数据报表模板,美呆了
  18. 43-高级路由:BGP 起源属性:修改为e
  19. AWS启示录:创新作帆,云计算的征途是汪洋大海
  20. 依托抖音、快手直播的上架工具开发

热门文章

  1. js控制input框输入数字时,累计求和
  2. MAC EI Capitan上更新系统自带SVN版本号(关闭SIP方能sudo rm)
  3. mongodb配置windows服务启动
  4. 查看Linux软件信息
  5. 一次实现可以在某些场合替代菱形继承?
  6. es6 find 数组内查询用法
  7. Grails通过sessionId获取session对象
  8. Flutter Dart 安装在window系统
  9. MSSQL · 最佳实践 · 使用混合密钥实现列加密
  10. ES6新特性5:类(Class)和继承(Extends)