亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

.NET分頁控件簡單學習

2024-07-10 13:31:18
字體:
來源:轉載
供稿:網友

這幾天無意間看到一個關于分頁的帖子,覺得寫得挺好的。關于這些東西,自己一直都是只知道原理,卻沒有真正動手做過,于是研究了一下分頁的原理自己動手寫了一個十分特別非常簡單的分頁程序,在這里與大家分享一下。 

這個程序取數據使用的ado.net,首先先新建一個取數據的類PageDAl 

 

using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.Common;using System.Data.SqlClient;using System.Linq;using System.Web;namespace page.DAL{  public class PageDal  {    public DataTable GetUserList(out int totalCount, int pageIndex = 1, int pagesize = 10)    {      using (        SqlConnection coon =          new SqlConnection(ConfigurationManager.ConnectionStrings["userConnection"].ConnectionString))      {        coon.Open();        string sqlCount = "select count(F_Id) from Sys_User";        SqlCommand cmd = new SqlCommand(sqlCount, coon);        totalCount = int.Parse(cmd.ExecuteScalar().ToString());        string sql = "select F_Account,F_RealName from (select *,Row_Number() over(order by F_Account) r from Sys_User)as w where r>{0} and r<={1};";        SqlDataAdapter ad = new SqlDataAdapter(String.Format(sql, (pageIndex - 1) * pagesize, (pageIndex * pagesize)), coon);        DataTable dt = new DataTable();        ad.Fill(dt);        return dt;      }    }  }} 

然后記得修改一下webconfig里面的連接數據庫的字符串,數據庫自己隨便建一個就行。

接下來是ashx一般處理程序,html頁面把需求傳過來,他在從PageDal中取數據。 

 

using page.DAL;using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Web;namespace page{  /// <summary>  /// WebHandler 的摘要說明  /// </summary>  public class WebHandler : IHttpHandler  {    public void ProcessRequest(HttpContext context)    {      try      {        int pageIndex = int.Parse(context.Request.Form["pageindex"]);        int pageSize = int.Parse(context.Request.Form["pagesize"]);        PageDal pd = new PageDal();        int totalCount;        DataTable dt = pd.GetUserList(out totalCount, pageIndex, pageSize);        string json = ToJson(dt, "data", totalCount);        context.Response.ContentType = "text/plain";        context.Response.Write(json);      }      catch      {        context.Response.Write("error");      }    }    public bool IsReusable    {      get      {        return false;      }    }    /// <summary>    /// DataTable轉換為Json    /// </summary>    public static string ToJson(DataTable dt, string jsonName, int count)    {      StringBuilder Json = new StringBuilder();      if (string.IsNullOrEmpty(jsonName))        jsonName = dt.TableName;      Json.Append("{/"" + jsonName + "/":[");      if (dt.Rows.Count > 0)      {        for (int i = 0; i < dt.Rows.Count; i++)        {          Json.Append("{");          for (int j = 0; j < dt.Columns.Count; j++)          {            Type type = dt.Rows[i][j].GetType();            Json.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + StringFormat(dt.Rows[i][j].ToString(), type));            if (j < dt.Columns.Count - 1)            {              Json.Append(",");            }          }          Json.Append("}");          if (i < dt.Rows.Count - 1)          {            Json.Append(",");          }        }      }      Json.Append("],");      Json.Append("/"count/":" + count + "}");      return Json.ToString();    }    /// <summary>    /// 格式化字符型、日期型、布爾型    /// </summary>    /// <param name="str"></param>    /// <param name="type"></param>    /// <returns></returns>    private static string StringFormat(string str, Type type)    {      if (type == typeof(string))      {        str = String2Json(str);        str = "/"" + str + "/"";      }      else if (type == typeof(DateTime))      {        str = "/"" + str + "/"";      }      else if (type == typeof(bool))      {        str = str.ToLower();      }      else if (type != typeof(string) && string.IsNullOrEmpty(str))      {        str = "/"" + str + "/"";      }      return str;    }    /// <summary>    /// 過濾特殊字符    /// </summary>    /// <param name="s">字符串</param>    /// <returns>json字符串</returns>    private static string String2Json(String s)    {      StringBuilder sb = new StringBuilder();      for (int i = 0; i < s.Length; i++)      {        char c = s.ToCharArray()[i];        switch (c)        {          case '/"':            sb.Append("///""); break;          case '//':            sb.Append("////"); break;          case '/':            sb.Append("///"); break;          case '/b':            sb.Append("//b"); break;          case '/f':            sb.Append("//f"); break;          case '/n':            sb.Append("//n"); break;          case '/r':            sb.Append("//r"); break;          case '/t':            sb.Append("//t"); break;          default:            sb.Append(c); break;        }      }      return sb.ToString();    }  }} 

最后就是html代碼了 

 

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <script src="../Content/jquery/jquery-1.11.1.min.js"></script>  <title></title></head><body>  <table id="datatable"></table>  <div id="pageination" style="width: 100%">    <a href="javascript:void(0);" onclick="GoFirst()">首頁</a> <a href="javascript:void(0);" onclick="GoPre()">上一頁</a>  <span>當前<input id="pageindex" type="text" style="width:20px" value="1" disabled="disabled" />頁,總共<input id="totalcount" type="text" style="width:20px" value="" disabled="disabled" />條數據,共<input id="pagecount" type="text" style="width:20px" value="" disabled="disabled" />頁</span>  <a href="javascript:void(0);" onclick="GoNext()">下一頁</a> <a href="javascript:void(0);" onclick="GoLast()">尾頁</a>  </div></body></html><script>  var pageindex = 1;  var pagesize = 15;  $(function () {    search();  });  function search() {    $.ajax({      url: "../WebHandler.ashx",      type: "post",      data: {        "pagesize": pagesize,        "pageindex": pageindex      },      success: function (daa) {        var json = JSON.parse(daa);        var tab = $("#datatable");        tab.empty();        for (var i = 0; i < json.data.length ; i++) {          tab.append("<tr><td>" +            json.data[i].F_Account +            "</td><td>" +            json.data[i].F_RealName +            "</td></tr>");        }        var count = json.count;        var pagecount = Math.ceil(count / pagesize);        $("#totalcount").val(count);        $("#pagecount").val(pagecount);      }    });  };  function GoFirst() {    pageindex = 1;    $("#pageindex").val(pageindex);    search();  };  function GoLast() {    var pageindex = $("#pagecount").val();    $("#pageindex").val(pageindex);    search();  };  function GoPre() {    if (pageindex > 1) {      pageindex = pageindex - 1;      $("#pageindex").val(pageindex);      search();    } else {      alert("這是第一頁!");    }  };  function GoNext() {    var pagecount = $("#pagecount").val();    if (pageindex < pagecount) {      pageindex = pageindex + 1;      $("#pageindex").val(pageindex);      search();    } else {      alert("這是最后一頁!");    }  };</script> 

看完那篇帖子自己又對照的看了一下公司做的分頁,總結了一下,以前都沒認真想過關于分頁的東西,覺得還挺難的,但經過一次總結發現其實只要你按順序一點一點理清楚,有一個清晰的思路,完全不難的。 

首先取數據,分兩個部分,一個是把所有的數據個數統計出來另一個是取當前頁碼的數據,這個是很簡單的,自己把有關的sql語句寫好就行,sql語句的寫法有很多,我取當前頁碼用的語句是 

select F_Account,F_RealName from (select *,Row_Number() over(order by F_Account) r from Sys_User)as w where r> (pageIndex - 1) * pagesize and r<=pageIndex* pagesize
數據取出來之后就是把頁面欄拼好,并且把相關的方法寫好,比如說首頁,前一頁,下一頁,尾頁等,之后把數據總數傳過來,計算頁數就OK了。 

<div id="pageination" style="width: 100%">    <a href="javascript:void(0);" onclick="GoFirst()">首頁</a> <a href="javascript:void(0);" onclick="GoPre()">上一頁</a>  <span>當前<input id="pageindex" type="text" style="width:20px" value="1" disabled="disabled" />頁,總共<input id="totalcount" type="text" style="width:20px" value="" disabled="disabled" />條數據,共<input id="pagecount" type="text" style="width:20px" value="" disabled="disabled" />頁</span>  <a href="javascript:void(0);" onclick="GoNext()">下一頁</a> <a href="javascript:void(0);" onclick="GoLast()">尾頁</a>  </div>function GoFirst() {    pageindex = 1;    $("#pageindex").val(pageindex);    search();  };  function GoLast() {    var pageindex = $("#pagecount").val();    $("#pageindex").val(pageindex);    search();  };  function GoPre() {    if (pageindex > 1) {      pageindex = pageindex - 1;      $("#pageindex").val(pageindex);      search();    } else {      alert("這是第一頁!");    }  };  function GoNext() {    var pagecount = $("#pagecount").val();    if (pageindex < pagecount) {      pageindex = pageindex + 1;      $("#pageindex").val(pageindex);      search();    } else {      alert("這是最后一頁!");    }  };

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91av在线精品| 欧美黑人一级爽快片淫片高清| 日韩中文字幕在线精品| 91日本视频在线| 亚洲美女在线看| 亚洲国产婷婷香蕉久久久久久| 亚洲最大av网| 精品香蕉在线观看视频一| 日韩激情视频在线| 亚洲第一福利视频| 91欧美精品成人综合在线观看| 中文字幕亚洲欧美在线| 最近2019好看的中文字幕免费| 欧美日韩xxxxx| 久久久999精品| 国自产精品手机在线观看视频| 日韩av中文在线| 亚洲精品97久久| 国产一区二区三区在线| 91精品国产综合久久男男| 91亚洲精品在线观看| 国产亚洲欧洲高清| 国产视频精品va久久久久久| 国产欧美精品一区二区三区介绍| www.日韩不卡电影av| 一区二区三区 在线观看视| 久久免费精品日本久久中文字幕| 91久久久精品| 中文字幕久久亚洲| 国产一级揄自揄精品视频| 色综合久久中文字幕综合网小说| 啊v视频在线一区二区三区| 欧美激情videos| 国产精品一区二区av影院萌芽| 97超级碰在线看视频免费在线看| 日韩小视频在线观看| 91av在线不卡| 成人欧美在线视频| 亚洲视频综合网| 国产91精品不卡视频| www亚洲精品| www高清在线视频日韩欧美| 色偷偷av一区二区三区乱| 欧美性猛交xxxx富婆弯腰| 亚洲精品欧美一区二区三区| 97超碰蝌蚪网人人做人人爽| 久久久久久伊人| 亚洲激情视频在线| 欧美黄色www| 午夜精品免费视频| 久久久久一本一区二区青青蜜月| 久久久久久国产| 国产精品久久久久久一区二区| 国产精品最新在线观看| 精品国产自在精品国产浪潮| 92福利视频午夜1000合集在线观看| 黑人巨大精品欧美一区二区| 欧美视频二区36p| 欧美激情乱人伦一区| 亚洲国产精品美女| 91国内在线视频| 日韩三级成人av网| 精品久久久久久中文字幕一区奶水| 欧美电影院免费观看| 亚洲精品欧美日韩| 国产精品中文字幕久久久| 欧美精品电影免费在线观看| 日韩成人中文电影| 成人激情视频小说免费下载| 欧美精品videossex88| 欧美精品xxx| 国产日产久久高清欧美一区| 欧美日韩国产激情| 精品二区三区线观看| 亚洲精品第一页| 一本大道亚洲视频| 国产精品海角社区在线观看| 国语自产精品视频在线看抢先版图片| y97精品国产97久久久久久| 美日韩精品免费视频| 亚洲精品日韩在线| 97在线视频观看| 国产成人97精品免费看片| 欧美日韩国产在线看| 久久夜色精品国产欧美乱| 欧美精品在线看| 久热精品视频在线| 国产精品91免费在线| 久久好看免费视频| 欧美激情视频网站| 亚洲xxxxx| 91精品视频播放| xxx成人少妇69| 久久福利网址导航| 欧美激情一区二区三区在线视频观看| 色999日韩欧美国产| 国产精品久久久久久久7电影| 国产裸体写真av一区二区| 伊人亚洲福利一区二区三区| 91丝袜美腿美女视频网站| 韩国v欧美v日本v亚洲| 国产欧美日韩免费看aⅴ视频| 性色av一区二区三区红粉影视| 精品动漫一区二区三区| 2018中文字幕一区二区三区| 中文字幕日韩专区| 亚洲精品视频中文字幕| 精品无人区太爽高潮在线播放| 97精品国产97久久久久久免费| 欧美性xxxx极品高清hd直播| 在线免费看av不卡| 亚洲人成在线播放| 欧美国产在线视频| 日韩av影院在线观看| 色妞色视频一区二区三区四区| 成人字幕网zmw| 91九色国产社区在线观看| 黄色成人av在线| 4388成人网| 97国产精品人人爽人人做| 欧美视频免费在线观看| 精品国产一区久久久| 久久电影一区二区| 日韩亚洲精品视频| 成人激情免费在线| 国产在线高清精品| 国产精品久久久久久久久久| 一二美女精品欧洲| 国产精品视频午夜| 亚洲国产精品电影在线观看| 亚洲91精品在线| 97视频在线观看视频免费视频| 人体精品一二三区| 91夜夜未满十八勿入爽爽影院| 国产亚洲欧洲在线| 在线观看国产欧美| 欧美肥老太性生活视频| 日韩欧美亚洲国产一区| 亚洲精品国产精品自产a区红杏吧| 欧美日韩福利视频| 亚洲精品久久久久久久久久久久久| 亚洲国产一区自拍| 国产suv精品一区二区三区88区| xx视频.9999.com| 精品中文字幕乱| 亚洲国产97在线精品一区| 欧美做爰性生交视频| 欧美最猛黑人xxxx黑人猛叫黄| 91精品视频播放| 午夜精品一区二区三区在线视| 国产精品一区二区久久精品| 精品亚洲一区二区三区在线播放| 九九久久久久久久久激情| 国产精品久久久久久久天堂| 97久久伊人激情网| 55夜色66夜色国产精品视频| 欧美大片va欧美在线播放| 亚洲japanese制服美女| 久久免费视频观看| 亚洲成人a级网| 亚洲精品99久久久久| 亚洲2020天天堂在线观看| 麻豆精品精华液| 欧美成人免费视频|