asp.net---jquery--ajax 實現滾動條滾動到底部分頁顯示

前臺: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; } } }
相關文章
相關標籤/搜索