真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在ASP.NETMVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),烈山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:烈山等地區(qū)。烈山做網(wǎng)站價(jià)格咨詢:13518219792

分頁需要三個(gè)變量:數(shù)據(jù)總量、每頁顯示的數(shù)據(jù)條數(shù)、當(dāng)前頁碼。


//數(shù)據(jù)總量
int dataCount;
//每頁顯示的數(shù)據(jù)條數(shù)
int pageDataCount;
int pageNumber;

根據(jù)數(shù)據(jù)總量和每頁顯示的數(shù)據(jù)條數(shù)計(jì)算出總頁數(shù),根據(jù)當(dāng)前頁碼和每頁顯示的數(shù)據(jù)條數(shù)計(jì)算出從數(shù)據(jù)庫中讀取數(shù)據(jù)的起始行號和結(jié)束行號。

//總頁數(shù)
int pageCount = (int)Math.Ceiling(dataCount/ (pageDataCount* 1.0));
int startLine = (pageNumber - 1) * PageDataCount + 1;
int endLine=startLine + PageDataCount - 1;

對于數(shù)據(jù)庫的查詢操作使用輕量級ORM框架Dapper來實(shí)現(xiàn),具體代碼如下:

protected IDbConnection CreateConnection()
{
  IDbConnection dbConnection = new SqlConnection(ConnectionString);
  dbConnection.Open();
  return dbConnection;
}

//獲取數(shù)據(jù)庫中數(shù)據(jù)的總條數(shù)
public virtual int QueryDataCount(string tableName)
{
  using (IDbConnection dbConnection = CreateConnection())
  {
    var queryResult = dbConnection.Query("select count(Id) from " + tableName);
    if (queryResult == null || !queryResult.Any())
    {
      return 0;
    }
    return queryResult.First();
  }
}

public virtual IEnumerable RangeQuery(string tableName, int startline, int endline)
{
  if (string.IsNullOrEmpty(tableName))
  {
    throw new ArgumentNullException("表名不得為空或null");
  }
  if (startline <= 0)
  {
    throw new ArgumentOutOfRangeException("起始行號必須大于0");
  }
  if (endline - startline < 0)
  {
    throw new ArgumentOutOfRangeException("結(jié)束行號不得小于起始行號");
  }
  using (IDbConnection dbConnection = CreateConnection())
  {
    var queryResult = dbConnection.Query("select top " + (endline - startline + 1) + " * from " + tableName + " where Id not in (select top " + (startline - 1) + " Id from " + tableName + " order by Id desc) order by Id desc");
    if (queryResult != null && queryResult.Any())
    {
      return queryResult;
    }
  }
  return null;
}

繪制分頁按鈕

在App_Code文件夾中添加PageHelper.cshtml文件封裝繪制按鈕的代碼,這里需要注意一點(diǎn),使用VS發(fā)布站點(diǎn)時(shí)App_Code文件夾中的文件不會(huì)被打包,需要手動(dòng)拷貝App_Code文件夾中的文件到站點(diǎn)中。

@*
  amount:數(shù)據(jù)總數(shù),count:每頁顯示的數(shù)據(jù)條數(shù),redierctUrl點(diǎn)擊按鈕時(shí)的跳轉(zhuǎn)鏈接
  頁面上需引用:bootstrap.min.css
*@
@helper CreatePaginateButton(int amount, int count, string redirectUrl)
{
  
    
      
        
  • 首頁
  •         @{           int pageNumber = (int)Math.Ceiling(amount / (count * 1.0));           pageNumber = pageNumber < 1 ? 1 : pageNumber;           //頁面上顯示的按鈕數(shù)目(不計(jì)首頁、末頁、上一頁、下一頁等按鈕),若頁面總數(shù)超過該值則繪制按鈕分隔符           const int BUTTON_COUNT = 7;           // 按鈕分隔符           const string BUTTON_SEPARATOR = "......";           //按鈕分隔符左側(cè)按鈕數(shù)目(不計(jì)首頁、末頁、上一頁、下一頁等按鈕)           const int LEFT_BUTTON_COUNT = 4;           //按鈕分隔符右側(cè)按鈕數(shù)目(不計(jì)首頁、末頁、上一頁、下一頁等按鈕)           const int RIGHT_BUTTON_COUNT = 2;           string[] urlSegments = Request.Url.Segments;           int selectedIndex = 0;           int.TryParse(urlSegments[urlSegments.Length - 1], out selectedIndex);           int previous = (selectedIndex - 1) <= 0 ? 1 : selectedIndex - 1;           int next = (selectedIndex + 1 > pageNumber) ? pageNumber : selectedIndex + 1;           var r=Request.Cookies[""];           if (pageNumber > BUTTON_COUNT)           {         
  • 上一頁
  •             for (int i = 1; i <= BUTTON_COUNT; i++)             {               if ( selectedIndex >= LEFT_BUTTON_COUNT && selectedIndex%LEFT_BUTTON_COUNT==0 && i <= LEFT_BUTTON_COUNT)               {         
  • @selectedIndex
  •                 int step = selectedIndex;                 int tag = 0;                 for (i = 1; i <= LEFT_BUTTON_COUNT; i++)                 {                   tag = i + step;                   if (tag > pageNumber - RIGHT_BUTTON_COUNT)                   {                     if (i <= LEFT_BUTTON_COUNT)                     {                       i = LEFT_BUTTON_COUNT + 1;                     }                     break;                   }         
  • @tag
  •                 }               }               else if (i <= LEFT_BUTTON_COUNT && selectedIndex@i               }               else if (i < LEFT_BUTTON_COUNT && selectedIndex>LEFT_BUTTON_COUNT)               {                 int step = selectedIndex / LEFT_BUTTON_COUNT;                 int tag = 0;         
  • @(step*LEFT_BUTTON_COUNT)
  •                 for (i = 1; i <= LEFT_BUTTON_COUNT; i++)                 {                   tag = i + step * LEFT_BUTTON_COUNT;                   if (tag > pageNumber - RIGHT_BUTTON_COUNT)                   {                     if (i <= LEFT_BUTTON_COUNT)                     {                       i = LEFT_BUTTON_COUNT + 1;                     }                     break;                   }         
  • @tag
  •                 }               }               //繪制按鈕分隔符右側(cè)按鈕               if (i==BUTTON_COUNT-1)               {         
  • @(pageNumber-1)
  •               }               else if(i==BUTTON_COUNT)               {         
  • @pageNumber
  •               }               //繪制按鈕分隔符               else if (i >= BUTTON_COUNT -RIGHT_BUTTON_COUNT)               {         
  • @BUTTON_SEPARATOR
  •               }             }         
  • 下一頁
  •           }           else           {             for (int i = 1; i <= pageNumber; i++)             {         
  • @i
  •             }           }         }         
  • 末頁
  •               
       }

    在前臺(tái)頁面中調(diào)用即可繪制分頁按鈕

    @PageHelper.CreatePaginateButton(246, 10, "/usermanager/attentionlist/")

    下面是幾張分頁按鈕效果圖:

    如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能
    如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能
    如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能

    對應(yīng)的HTML代碼:

    如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能


    關(guān)于如何在ASP.NET MVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


    網(wǎng)站名稱:如何在ASP.NETMVC5中實(shí)現(xiàn)一個(gè)分頁查詢功能-創(chuàng)新互聯(lián)
    文章地址:http://weahome.cn/article/jjjii.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部