asp.net+jquery滾動(dòng)滾動(dòng)條加載數(shù)據(jù)的下拉控件
更新時(shí)間:2010年06月25日 00:37:33 作者:
由于需求需要用到一個(gè)滾動(dòng)滾動(dòng)條加載數(shù)據(jù)的下拉列表(假如數(shù)據(jù)1000條,下拉列表開始只顯示100條,當(dāng)用戶下拉滾到條到最底下時(shí),再加載下一個(gè)100條,如此循環(huán))
這樣的需求貌似自己感覺不是很合理,因?yàn)閿?shù)據(jù)多了如此下拉無論從人還是機(jī)器操作都比較痛苦。
沒辦法由于需求下來了,只能按需求操作。網(wǎng)上找了很多相關(guān)控件都感覺有點(diǎn)龐大,占資源比較多。沒辦法自己花半天時(shí)間弄出個(gè)半成品自定義控件,拿出來分享下,如有高手看了請多指點(diǎn)。
需求:AJAX滾動(dòng)滾動(dòng)條加載數(shù)據(jù)的下拉列表
控件名稱:Webcombo
所用技術(shù):ASP.NET(C#),jQuery,ASP.NET一般處理文件(.ashx)
下拉列表具體實(shí)現(xiàn):用DIV模擬下拉列表,input和圖片模擬下拉框。最終結(jié)果如下圖

先分析下jQuery這邊的插件寫法吧
AJAX加載有jQuery Ajax完成
$.ajax({
type: options.getMethod,
url: options.jsonUrl,
data: params,
success: function(data){
if(isScroll)
$.CreateListItem(showbox,data,options);
else
$.CreateBox(showbox,data,options);
},
complete:function(){ },
error:function(e){
$(options.loadBox).css('background-image','none');
$(options.loadBox).append('<span>data connect error!'+e+'</span>');
}
而滾動(dòng)條滾動(dòng)加載數(shù)據(jù)則由下拉DIV的onscroll事件完成,具體核心代碼如下:
$(showbox).scroll(function(){
if(options.total==$(this).children("ul").children("li").length)
return;
var scrolltop=$(showbox).attr('scrollTop');
var scrollheight=$(showbox).attr('scrollHeight');
var windowheight=$(showbox).attr('clientHeight');
var scrolloffset=20;
$(options.loadBox).css('top',scrolltop);
if(scrolltop>=(scrollheight-(windowheight+scrolloffset))&&!loading)
{
loading=true;
$(options.loadBox).show();
options.total=$(this).children("ul").children("li").length;
$.WebComboGetData(showbox,options,true);
}
});
該插件的完整代碼再源文件中可以找到,文件名:simulateddl.js
其實(shí)這個(gè)滾動(dòng)條滾動(dòng)加載數(shù)據(jù)的jQuery插件寫好了就已經(jīng)可以實(shí)現(xiàn)該功能了,只是由于項(xiàng)目中用到的地方比較多又無賴的將其封裝到asp.net自定義控件中。之所以說半成品就是這個(gè)自定義控件自定義的有些不人性化,高手們見了望指點(diǎn)指點(diǎn)。具體代碼可以下載后查看,本人不是控件制作高手,就不搬出來獻(xiàn)丑了。有問題建議的朋友可以提出來大家討論討論。
asp.net+jQuery滾動(dòng)條滾動(dòng)加載數(shù)據(jù)控件源代碼下載
沒辦法由于需求下來了,只能按需求操作。網(wǎng)上找了很多相關(guān)控件都感覺有點(diǎn)龐大,占資源比較多。沒辦法自己花半天時(shí)間弄出個(gè)半成品自定義控件,拿出來分享下,如有高手看了請多指點(diǎn)。
需求:AJAX滾動(dòng)滾動(dòng)條加載數(shù)據(jù)的下拉列表
控件名稱:Webcombo
所用技術(shù):ASP.NET(C#),jQuery,ASP.NET一般處理文件(.ashx)
下拉列表具體實(shí)現(xiàn):用DIV模擬下拉列表,input和圖片模擬下拉框。最終結(jié)果如下圖

先分析下jQuery這邊的插件寫法吧
AJAX加載有jQuery Ajax完成
復(fù)制代碼 代碼如下:
$.ajax({
type: options.getMethod,
url: options.jsonUrl,
data: params,
success: function(data){
if(isScroll)
$.CreateListItem(showbox,data,options);
else
$.CreateBox(showbox,data,options);
},
complete:function(){ },
error:function(e){
$(options.loadBox).css('background-image','none');
$(options.loadBox).append('<span>data connect error!'+e+'</span>');
}
而滾動(dòng)條滾動(dòng)加載數(shù)據(jù)則由下拉DIV的onscroll事件完成,具體核心代碼如下:
復(fù)制代碼 代碼如下:
$(showbox).scroll(function(){
if(options.total==$(this).children("ul").children("li").length)
return;
var scrolltop=$(showbox).attr('scrollTop');
var scrollheight=$(showbox).attr('scrollHeight');
var windowheight=$(showbox).attr('clientHeight');
var scrolloffset=20;
$(options.loadBox).css('top',scrolltop);
if(scrolltop>=(scrollheight-(windowheight+scrolloffset))&&!loading)
{
loading=true;
$(options.loadBox).show();
options.total=$(this).children("ul").children("li").length;
$.WebComboGetData(showbox,options,true);
}
});
該插件的完整代碼再源文件中可以找到,文件名:simulateddl.js
其實(shí)這個(gè)滾動(dòng)條滾動(dòng)加載數(shù)據(jù)的jQuery插件寫好了就已經(jīng)可以實(shí)現(xiàn)該功能了,只是由于項(xiàng)目中用到的地方比較多又無賴的將其封裝到asp.net自定義控件中。之所以說半成品就是這個(gè)自定義控件自定義的有些不人性化,高手們見了望指點(diǎn)指點(diǎn)。具體代碼可以下載后查看,本人不是控件制作高手,就不搬出來獻(xiàn)丑了。有問題建議的朋友可以提出來大家討論討論。
asp.net+jQuery滾動(dòng)條滾動(dòng)加載數(shù)據(jù)控件源代碼下載
您可能感興趣的文章:
- jquery實(shí)現(xiàn)表格無縫滾動(dòng)
- Jquery原生態(tài)實(shí)現(xiàn)表格header頭隨滾動(dòng)條滾動(dòng)而滾動(dòng)
- jquery滾動(dòng)組件(vticker.js)實(shí)現(xiàn)頁面動(dòng)態(tài)數(shù)據(jù)的滾動(dòng)效果
- 基于jquery實(shí)現(xiàn)頁面滾動(dòng)到底自動(dòng)加載數(shù)據(jù)的功能
- js/jquery控制頁面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
- jquery滾動(dòng)加載數(shù)據(jù)的方法
- 使用jQuery或者原生js實(shí)現(xiàn)鼠標(biāo)滾動(dòng)加載頁面新數(shù)據(jù)
- Jquery公告滾動(dòng)+AJAX后臺得到數(shù)據(jù)
- 拉動(dòng)滾動(dòng)條加載數(shù)據(jù)的jquery代碼
- jQuery實(shí)現(xiàn)表格行數(shù)據(jù)滾動(dòng)效果
相關(guān)文章
jQuery使用ajax傳遞json對象到服務(wù)端及contentType的用法示例
這篇文章主要介紹了jQuery使用ajax傳遞json對象到服務(wù)端及contentType的用法,結(jié)合實(shí)例形式分析了jQuery使用ajax傳遞json對象數(shù)據(jù)及服務(wù)器響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2020-03-03
Jquery實(shí)現(xiàn)動(dòng)態(tài)切換圖片的方法
這篇文章主要介紹了Jquery實(shí)現(xiàn)動(dòng)態(tài)切換圖片的方法,涉及jQuery頁面元素操作及鏈?zhǔn)讲僮鞯南嚓P(guān)技巧,需要的朋友可以參考下2015-05-05
ASP.NET jQuery 實(shí)例14 在ASP.NET form中校驗(yàn)時(shí)間范圍
這節(jié)主要講如何用jQuery校驗(yàn)表單時(shí)間范圍,時(shí)間控件用到了jQuery-ui2012-02-02
基于jQuery實(shí)現(xiàn)淡入淡出效果輪播圖
這篇文章主要為大家詳細(xì)介紹了基于jQuery淡入淡出效果輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
jQuery 中國省市兩級聯(lián)動(dòng)選擇附圖
有關(guān)中國省市兩級聯(lián)動(dòng)選擇的實(shí)現(xiàn)代碼在網(wǎng)上可以找到很多,而本文要為大家介紹的是一個(gè)比較實(shí)用的省市兩級聯(lián)動(dòng)選擇,感興趣的朋友可以參考下2014-05-05
jquery 表單進(jìn)行客戶端驗(yàn)證demo
用jquery對表單進(jìn)行客戶端驗(yàn)證demo ,學(xué)習(xí)jquery的朋友可以參考下。2009-08-08
jquery中插件實(shí)現(xiàn)自動(dòng)添加用戶的具體代碼
當(dāng)點(diǎn)擊添加時(shí)自動(dòng)彈出窗口,填寫完畢按確定自動(dòng)添加到table表格中,有需要的朋友可以參考一下2013-11-11

