前臺:aspx頁面html
1 var bgtime = $(" #date1 ").val(); 2 var overtime = $(" #date2 ").val(); 3 var gsid = "0"; 4 var typename = ""; 5 var divstyle = ""; 6 var bgpage; //定義開始頁面 7 var recordCount; //數據總條數 8 var pageCount; //總頁數 9 //頁面加載完成執行 10 $(document).ready(function(){ 11 //$("#date1").attr("value", getNowFormatDate());//推薦這種寫法,可正常賦值 12 $("#date2").attr("value", getNowFormatDate()); 13 bgtime = $(" #date1 ").val(); 14 overtime = $(" #date2 ").val(); 15 typename = "所有"; 16 $("#gs").html(""); 17 $("#data-content").html(""); 18 $("#leibie").html(""); 19 $("#gs").append("<div class=\"xuanze xuanze-active\" name=\"0\">所有公司<span class=\"my-icon mui-icon mui-icon-checkmarkempty\"></span></div>"); 20 $("#leibie").append("<div class=\"xuanze xuanze-active\" name=\"所有\">所有<span class=\"my-icon mui-icon mui-icon-checkmarkempty\"></span></div>"); 21 InitPage(1,10); //這裏是調用InitPage(pageIndex,pageSize)方法,pageIndex:起始頁,pageSize:每頁的數據條數 22 }); 23 //監聽滾輪事件 24 window.onscroll = function () { 25 if (getScrollHeight() == getWindowHeight() + getDocumentTop()) { //當滾動條到底時,這裏是觸發內容 26 //異步請求數據,局部刷新dom 27 if (bgpage >= parseInt(pageCount)) //開始頁數大於全部數據總頁數 28 { 29 alert("已經到底部了") 30 } 31 else { 32 alert(bgpage) //頁數 33 onscoll(bgpage, 10);調用onscoll(pageIndex,pageSize) 34 } 35 } 36 }; 37 //頁面加載完成添加數據的方法 38 function InitPage(pageIndex, pageSize) { 39 $.ajax({ 40 url: "SlcBuyTp.ashx", 41 type: 'post', 42 //contentType: "application/json;charset=UTF-8", 43 data: { "gsname": gsid, "bgtime": bgtime, "overtime": overtime, "type": typename, "pageIndex": pageIndex, "pageSize": pageSize },//encodeURI(encodeURI(typename)) escape(typename) 44 cache: true, 45 success: function (d) { 46 //alert(d); 47 //console.log(new Date().getTime()); 48 var obj = eval('(' + d + ')'); //數組 49 recordCount = obj.table2[0].recordcount; //記錄數據總條數 50 pageCount = obj.table2[0].pagecount; //記錄總頁數 51 for (var index = 0; index < obj.gsname.length; index++) { 52 var item = obj.gsname[index]; 53 $("#gs").append("<div class=\"xuanze\" name=\"" + item.gsid + "\">" + item.gsname + "<span class=\"my-icon mui-icon mui-icon-checkmarkempty\"></span></div>"); 54 } 55 for (var index = 0; index < obj.type.length; index++) { //添加類型名稱 56 var item = obj.type[index]; 57 $("#leibie").append("<div class=\"xuanze\" name=\"" + item.leibie + "\">" + item.leibie + "<span class=\"my-icon mui-icon mui-icon-checkmarkempty\"></span></div>"); 58 } 59 if (obj.datas.length == 0) { 60 var kong = "<div class=\"tb-content\"><div style=\"with:100%;hight:20px;text-align:center;position: absolute;margin: 50%;\">沒有數據</div></div>" 61 $("#data-content").empty().append(kong); 62 } 63 else { 64 for(var i=0;i<obj.datas.length;i++) 65 { 66 var item = obj.datas[i]; 67 divstyle = "<div class=\"tb-content\"><table class=\"tb\"><tr><td style=\"width:35%;\">單據日期:" + item.riqi + "</td><td style=\"width:65%\">訂單接收方:" + item.jsgs + "</td></tr><tr><td>物料類別:" + item.typename + "</td><td>物料名稱:" + item.name + "</td></tr><tr><td>規格型號:" + item.gg + "</td><td>採購備註:" + item.beizhu + "</td></tr><tr><td>計量單位:" + item.jldw + "</td><td>數量:" + item.shuliang + "</td></tr><tr><td>需求部門:" + item.xqbm + "</td><td>本幣含稅金額:" + item.bbje + "</td></tr><tr><td>需求人員:" + item.xqry + "</td><td>採購部門:" + item.cgbm + "</td></tr><tr><td>採購人員:" + item.cgry + "</td><td></td></tr></table></div>"; 68 $("#data-content").append(divstyle); 69 } 70 }; 71 bgpage=parseInt(pageIndex) + 1 //起始頁+1 72 }, 73 error: function (XMLHttpRequest, textStatus, errorThrown) { 74 alert("請求數據失敗,XMLHttpRequest 對象:" + JSON.stringify(XMLHttpRequest) + ", 錯誤信息:" + textStatus + ", 捕獲的錯誤對象:" + errorThrown); 75 }, 76 }); 77 } 78 //滾動條到底部添加數據的方法 79 function onscoll(pageIndex, pageSize) { 80 $.ajax({ 81 url: "SlcBuyTp.ashx", 82 type: 'post', 83 //contentType: "application/json;charset=UTF-8", 84 data: { "gsname": gsid, "bgtime": bgtime, "overtime": overtime, "type": typename, "pageIndex": pageIndex, "pageSize": pageSize },//encodeURI(encodeURI(typename)) escape(typename) 85 cache: true, 86 success: function (d) { 87 //alert(d); 88 //console.log(new Date().getTime()); 89 var obj = eval('(' + d + ')'); //數組 90 var recordCount = obj.table2[0].recordcount; //記錄總條數 91 pageCount = obj.table2[0].pagecount; //記錄總頁數 92 if (obj.datas.length == 0) { 93 var kong = "<div class=\"tb-content\"><div style=\"with:100%;hight:20px;text-align:center;position: absolute;margin: 50%;\">沒有數據</div></div>" 94 $("#data-content").empty().append(kong); 95 } 96 else { 97 for (var i = 0; i < obj.datas.length; i++) { 98 var item = obj.datas[i]; 99 divstyle = "<div class=\"tb-content\"><table class=\"tb\"><tr><td style=\"width:35%;\">單據日期:" + item.riqi + "</td><td style=\"width:65%\">訂單接收方:" + item.jsgs + "</td></tr><tr><td>物料類別:" + item.typename + "</td><td>物料名稱:" + item.name + "</td></tr><tr><td>規格型號:" + item.gg + "</td><td>採購備註:" + item.beizhu + "</td></tr><tr><td>計量單位:" + item.jldw + "</td><td>數量:" + item.shuliang + "</td></tr><tr><td>需求部門:" + item.xqbm + "</td><td>本幣含稅金額:" + item.bbje + "</td></tr><tr><td>需求人員:" + item.xqry + "</td><td>採購部門:" + item.cgbm + "</td></tr><tr><td>採購人員:" + item.cgry + "</td><td></td></tr></table></div>"; 100 $("#data-content").append(divstyle); 101 } 102 }; 103 bgpage = parseInt(pageIndex) + 1 //起始頁+1 104 }, 105 error: function (XMLHttpRequest, textStatus, errorThrown) { 106 alert("請求數據失敗,XMLHttpRequest 對象:" + JSON.stringify(XMLHttpRequest) + ", 錯誤信息:" + textStatus + ", 捕獲的錯誤對象:" + errorThrown); 107 }, 108 }); 109 }
後臺:ashx頁面ajax
<%@ WebHandler Language="C#" Class="SlcBuyTp" %> using System; using System.Web; using System.Data; using cschef; public class SlcBuyTp : IHttpHandler { protected static int RecordCount = 0; //記錄數據總行數 public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string type; string datas; string gsbh = context.Request.Form["gsname"];//若是是get方式應該用context.Request.QueryString string bgtime = context.Request.Form["bgtime"];//若是是get方式應該用context.Request.QueryString string overtime = context.Request.Form["overtime"];//若是是get方式應該用context.Request.QueryString string typename = context.Request.Form["type"];//若是是get方式應該用context.Request.QueryString int pageIndex = CC.ToInt(context.Request.Form["pageIndex"]); //起始頁 int pageSize =CC.ToInt(context.Request.Form["pageSize"]);//每一個頁面數據條數 #region 分頁配置 if (pageIndex == 0) { pageIndex = 1; } #endregion if (gsbh == "0") { if(typename == "所有") { datas = @"select CONVERT(varchar(100), djrq, 23) riqi,wllbmc typename,ghdw jsgs,wlmc name,cpgg gg,bz beizhu,jldw jldw,sl shuliang,bbje bbje,xqbm xqbm,xqry xqry,cgbm cgbm,cgry cgry from t_cgmx where djrq between '"+bgtime+"' and '"+overtime+"'"; } else { datas = @"select CONVERT(varchar(100), djrq, 23) riqi,wllbmc typename,ghdw jsgs,wlmc name,cpgg gg,bz beizhu,jldw jldw,sl shuliang,bbje bbje,xqbm xqbm,xqry xqry,cgbm cgbm,cgry cgry from t_cgmx where djrq between '"+bgtime+"' and '"+overtime+"' and wllbmc='"+typename+"'"; } } else { //gsbh!=0 if(typename == "所有") { datas = @"select CONVERT(varchar(100), djrq, 23) riqi,wllbmc typename,ghdw jsgs,wlmc name,cpgg gg,bz beizhu,jldw jldw,sl shuliang,bbje bbje,xqbm xqbm,xqry xqry,cgbm cgbm,cgry cgry from t_cgmx where djrq between '"+bgtime+"' and '"+overtime+"' and gsbh='"+gsbh+"'"; } else { datas =@"select CONVERT(varchar(100), djrq, 23) riqi,wllbmc typename,ghdw jsgs,wlmc name,cpgg gg,bz beizhu,jldw jldw,sl shuliang,bbje bbje,xqbm xqbm,xqry xqry,cgbm cgbm,cgry cgry from t_cgmx where djrq between '"+bgtime+"' and '"+overtime+"' and gsbh='"+gsbh+"'and wllbmc='"+typename+"'"; } } DataTable TbDatas = new DataTable(); TbDatas = DBHelper.DBContext.Default.GetDataTable(datas); RecordCount = TbDatas.Rows.Count; //數據總條數 DataTable dtData = new DataTable(); //數據表 if(RecordCount==0) //若是沒有數據 { dtData = TbDatas; } else //不然 { dtData = GetPagedTable(TbDatas, pageIndex, pageSize);//調用 GetPagedTable(DataTable dt, int PageIndex, int PageSize)方法,爲TbDatas進行分頁 } DataTable dtCount = new DataTable(); //記錄TbDatas數據表的總數據條數和總頁數的表 dtCount.TableName = "table2"; dtCount.Columns.Add("recordcount"); //給一列命名 dtCount.Rows.Add(RecordCount); //添加dt的行數到dtCount dtCount.Columns.Add("pagecount"); //添加dt的行名,第二列 dtCount.Rows[0]["pagecount"]=getPageCount(TbDatas.Rows.Count,pageSize); //將總數據頁數添加到pagecount列 dtData.TableName = "datas"; DataSet ds = new DataSet(); ds.Tables.Add(dtData); ds.Tables.Add(dtCount); string JsonString1 = Newtonsoft.Json.JsonConvert.SerializeObject(ds); //轉換成json context.Response.Write(JsonString1); } /// <summary> /// 對DataTable進行分頁,起始頁爲1 /// </summary> /// <param name="dt">查詢出的數據表</param> /// <param name="PageIndex">起始頁</param> /// <param name="PageSize">每頁數據條數</param> /// <returns></returns> public static DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize) { if (PageIndex == 0) return dt; DataTable newdt = dt.Copy(); newdt.Clear(); int rowbegin = (PageIndex - 1) * PageSize; int rowend = PageIndex * PageSize; if (rowbegin >= dt.Rows.Count) return newdt; if (rowend > dt.Rows.Count) rowend = dt.Rows.Count; for (int i = rowbegin; i <= rowend - 1; i++) { DataRow newdr = newdt.NewRow(); DataRow dr = dt.Rows[i]; foreach (DataColumn column in dt.Columns) { newdr[column.ColumnName] = dr[column.ColumnName]; } newdt.Rows.Add(newdr); } return newdt; } /// <summary> /// 獲取總頁數 /// </summary> /// <param name="sumCount">結果集數量</param> /// <param name="pageSize">頁面數量</param> /// <returns></returns> public static int getPageCount(int sumCount, int pageSize) { int page = sumCount / pageSize; if (sumCount % pageSize > 0) { page = page + 1; } return page; } public bool IsReusable { get { return false; } } }