ant
No war in the world!

      最近根据需求做一个仿google的下拉提示控件,7月7号把写好的代码贴上了,不过会有输入中文(或者亚洲文字)的错误,现在做了相关修改,解决了不少BUG,还存在问题,希望朋友们提出,谢谢。
      给的需求是写一个控件,也就是ascx用户自定义控件。控件有两个属性,一个是数据源datatable,一个是要筛选的字段名。也就是说当你文本框中输入值后,就在数据源中查找给出的要筛选的字段,得到的信息给出下拉提示。
      考虑到一个页面可能要写多个这样的控件,所以感觉不好用document.getElementById来找到文本框对象,也没有用层隐藏的办法,取代是层的添加和删除(在这里,我的思路是这样的,如果有朋友有更好的方法,希望提出共享,学习学习,谢谢)。
      后来还因为提示数据可能过多,所以加了滚动条,同时响应解决了上下键控制滚动条的问题(真是搞人啦,那个offset和scroll看了阿一的一篇后晓得怎么算的,http://www.cnblogs.com/JustinYoung/archive/2006/10/11/offsetwidth-clientwidth.html)。

      还有自动完成的问题算个小插曲吧,其实不是大问题,丁学,玉开等都给出了答案,其实在他们给答案的时候我也找到答案了,还是谢谢他们了,大家都为园子做了这么多。不多罗嗦啦,把代码贴出来。


下面是代码:
先是建了一个用户控件Suggest.ascx
前台代码:

 

下拉提示控件 前台代码


后台代码:

 

 

下拉提示控件 后台代码

 

然后在aspx页面就可以拖这个控件来用,不过在其page_load方法中,要对控件的两个控件进行设置,不然是不会有提示框弹出的,因为数据源都没有。呵呵

效果是仿google做的,由于我才疏学浅,很多地方做的不完善。希望大家给出自己的意见和看法,给出好的批评,谢谢!

posted on 2008-07-07 11:24  别惹蚂蚁  阅读(2744)  评论(21编辑  收藏  举报