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,真是很麻烦啊

posted @   yan_xiaodi  阅读(884)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示