asp.net+jquery滚动滚动条加载数据下拉控件

由于需求需要用到一个滚动滚动条加载数据的下拉列表(假如数据1000条,下拉列表开始只显示100条,当用户下拉滚到条到最底下时,再加载下一个100条,如此循环),这样的需求貌似自己感觉不是很合理,因为数据多了如此下拉无论从人还是机器操作都比较痛苦。

没办法由于需求下来了,只能按需求操作。网上找了很多相关控件都感觉有点庞大,占资源比较多。没办法自己花半天时间弄出个半成品自定义控件,拿出来分享下,如有高手看了请多指点。

需求:AJAX滚动滚动条加载数据的下拉列表
控件名称:Webcombo
所用技术:ASP.NET(C#),jQuery,ASP.NET一般处理文件(.ashx)

下拉列表具体实现:用DIV模拟下拉列表,input和图片模拟下拉框。最终结果如下图

 asp.net 滚动条滚动加载数据控件

先分析下jQuery这边的插件写法吧

AJAX加载有jQuery Ajax完成

 
  
1 $.ajax({
2 type: options.getMethod,
3 url: options.jsonUrl,
4 data: params,
5 success: function (data){
6 if (isScroll)
7 $.CreateListItem(showbox,data,options);
8 else
9 $.CreateBox(showbox,data,options);
10 },
11 complete: function (){ },
12 error: function (e){
13 $(options.loadBox).css( ' background-image ' , ' none ' );
14 $(options.loadBox).append( ' <span>data connect error! ' + e + ' </span> ' );
15 }

 

而滚动条滚动加载数据则由下拉DIV的onscroll事件完成,具体核心代码如下:

 

 
  
1 $(showbox).scroll( function (){
2 if (options.total == $( this ).children( " ul " ).children( " li " ).length)
3 return ;
4
5 var scrolltop = $(showbox).attr( ' scrollTop ' );
6 var scrollheight = $(showbox).attr( ' scrollHeight ' );
7 var windowheight = $(showbox).attr( ' clientHeight ' );
8 var scrolloffset = 20 ;
9
10 $(options.loadBox).css( ' top ' ,scrolltop);
11
12 if (scrolltop >= (scrollheight - (windowheight + scrolloffset)) &&! loading)
13 {
14 loading = true ;
15 $(options.loadBox).show();
16 options.total = $( this ).children( " ul " ).children( " li " ).length;
17 $.WebComboGetData(showbox,options, true );
18 }
19 });

该插件的完整代码再源文件中可以找到,文件名:simulateddl.js

其实这个滚动条滚动加载数据的jQuery插件写好了就已经可以实现该功能了,只是由于项目中用到的地方比较多又无赖的将其封装到asp.net自定义控件中。之所以说半成品就是这个自定义控件自定义的有些不人性化,高手们见了望指点指点。具体代码可以下载后查看,本人不是控件制作高手,就不搬出来献丑了。有问题建议的朋友可以提出来大家讨论讨论。

asp.net+jQuery滚动条滚动加载数据控件源代码下载

原文地址:http://www.blog-design.cn/post/181.html

转载于:https://www.cnblogs.com/Araneid/archive/2010/06/23/1763834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值