ASP.NET AJAX Autocomplete extender的一个bug
2008-04-06 23:39 superbullet 阅读(563) 评论(0) 收藏 举报
第一次在cnblogs上发贴,请各位朋友多多关照
前几天因为项目需要autocomplete的功能,所以顺其自然的使用了ASP.NET AJAX的Autocomplete控件,不过事情进展不大顺利。本来以为非常简单的
拖过来就能用的事情折腾了我两天,至今仍未解决:(
问题描述如下:autocomplete经过textbox初始化focus后不工作。就是说当你的autocomplete控件的target control textbox在页面初始化时候触发
一个focus event的时候,你会发现autocomplete不工作,当你在textbox写东西的时候,没有任何下拉提示出现!好奇怪哦。刚开始我还以为是我对
autocomplete的设置出问题了,但是设置跟ASP.NET上的sample是一模一样的,咋会有问题呢?web service也没有问题啊。debug的时候web service
确实返回了我需要的data啊。真是奇怪了!不过当我在(http://asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx)
autoComplete.add_populating这个事件中添加一个alert('populating');之后,下拉提示竟然“神奇”地出现了!真是有意思了。后来百思不得其
解,为啥啊?(本人是菜鸟,各位牛人表笑。。。)后来想想会不会是被页面上面某些javascript“干扰”了,于是便把除autocomplete和textbox
以外的东西全部去掉(当然你不能去掉script manager了),还有code behind的代码也都去掉,autocomplete的下拉提示居然又“神奇”地回来了
!奇怪了,后来经过一连番的测试,发现原来罪魁祸首竟然是页面初始化时候在textbox上面添加的一个focus事件 -_-!!! 原来如此,后来上网查了
查,发现在这个问题已经有人在http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=14790上面提出来了。不过还没
有正式解决。
“I put this snippet right after the if(this._onHideJson) section...
if(document.activeElement != null &&
element.id == document.activeElement.id)
{
this._onGotFocus();
}
Hope this helps and makes it into the next release.” 有人说这个方法在firefox下面不能工作,不知道是否如此?
由于项目关系,没有时间继续磨在这个小问题上,所以特地放到cnblogs上面,看看各位牛人是否有完美的解决方法?(看来最终还是要修改autocompletebehavior.js文件,-_-~~)
当页面初始化的时候focu textbox是一个非常平常方便用户输入信息的方式,不知道咋MS的ajax control就这么不给面子呢?郁闷,怪不得所有我找
到的关于autocomplete的例子都没有初始化时候focus textbox! 郁闷~~~
前几天因为项目需要autocomplete的功能,所以顺其自然的使用了ASP.NET AJAX的Autocomplete控件,不过事情进展不大顺利。本来以为非常简单的
拖过来就能用的事情折腾了我两天,至今仍未解决:(
问题描述如下:autocomplete经过textbox初始化focus后不工作。就是说当你的autocomplete控件的target control textbox在页面初始化时候触发
一个focus event的时候,你会发现autocomplete不工作,当你在textbox写东西的时候,没有任何下拉提示出现!好奇怪哦。刚开始我还以为是我对
autocomplete的设置出问题了,但是设置跟ASP.NET上的sample是一模一样的,咋会有问题呢?web service也没有问题啊。debug的时候web service
确实返回了我需要的data啊。真是奇怪了!不过当我在(http://asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx)
autoComplete.add_populating这个事件中添加一个alert('populating');之后,下拉提示竟然“神奇”地出现了!真是有意思了。后来百思不得其
解,为啥啊?(本人是菜鸟,各位牛人表笑。。。)后来想想会不会是被页面上面某些javascript“干扰”了,于是便把除autocomplete和textbox
以外的东西全部去掉(当然你不能去掉script manager了),还有code behind的代码也都去掉,autocomplete的下拉提示居然又“神奇”地回来了
!奇怪了,后来经过一连番的测试,发现原来罪魁祸首竟然是页面初始化时候在textbox上面添加的一个focus事件 -_-!!! 原来如此,后来上网查了
查,发现在这个问题已经有人在http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=14790上面提出来了。不过还没
有正式解决。
“I put this snippet right after the if(this._onHideJson) section...
if(document.activeElement != null &&
element.id == document.activeElement.id)
{
this._onGotFocus();
}
Hope this helps and makes it into the next release.” 有人说这个方法在firefox下面不能工作,不知道是否如此?
由于项目关系,没有时间继续磨在这个小问题上,所以特地放到cnblogs上面,看看各位牛人是否有完美的解决方法?(看来最终还是要修改autocompletebehavior.js文件,-_-~~)
当页面初始化的时候focu textbox是一个非常平常方便用户输入信息的方式,不知道咋MS的ajax control就这么不给面子呢?郁闷,怪不得所有我找
到的关于autocomplete的例子都没有初始化时候focus textbox! 郁闷~~~
浙公网安备 33010602011771号