国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:35:57
文檔

ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼

ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼:對(duì)于大量數(shù)據(jù)的查詢和展示使用分頁(yè)是一種不錯(cuò)的選擇,這篇文章簡(jiǎn)要介紹下自己實(shí)現(xiàn)分頁(yè)查詢的思路。 分頁(yè)需要三個(gè)變量:數(shù)據(jù)總量、每頁(yè)顯示的數(shù)據(jù)條數(shù)、當(dāng)前頁(yè)碼。 //數(shù)據(jù)總量 int dataCount; //每頁(yè)顯示的數(shù)據(jù)條數(shù) int pageDataCount; int p
推薦度:
導(dǎo)讀ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼:對(duì)于大量數(shù)據(jù)的查詢和展示使用分頁(yè)是一種不錯(cuò)的選擇,這篇文章簡(jiǎn)要介紹下自己實(shí)現(xiàn)分頁(yè)查詢的思路。 分頁(yè)需要三個(gè)變量:數(shù)據(jù)總量、每頁(yè)顯示的數(shù)據(jù)條數(shù)、當(dāng)前頁(yè)碼。 //數(shù)據(jù)總量 int dataCount; //每頁(yè)顯示的數(shù)據(jù)條數(shù) int pageDataCount; int p

對(duì)于大量數(shù)據(jù)的查詢和展示使用分頁(yè)是一種不錯(cuò)的選擇,這篇文章簡(jiǎn)要介紹下自己實(shí)現(xiàn)分頁(yè)查詢的思路。

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

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

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

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

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

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

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

public virtual IEnumerable<T> RangeQuery<T>(string tableName, int startline, int endline)
{
 if (string.IsNullOrEmpty(tableName))
 {
 throw new ArgumentNullException("表名不得為空或null");
 }
 if (startline <= 0)
 {
 throw new ArgumentOutOfRangeException("起始行號(hào)必須大于0");
 }
 if (endline - startline < 0)
 {
 throw new ArgumentOutOfRangeException("結(jié)束行號(hào)不得小于起始行號(hào)");
 }
 using (IDbConnection dbConnection = CreateConnection())
 {
 var queryResult = dbConnection.Query<T>("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;
}

繪制分頁(yè)按鈕

在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:每頁(yè)顯示的數(shù)據(jù)條數(shù),redierctUrl點(diǎn)擊按鈕時(shí)的跳轉(zhuǎn)鏈接
 頁(yè)面上需引用:bootstrap.min.css
*@
@helper CreatePaginateButton(int amount, int count, string redirectUrl)
{
 <div id="pagenumber" style="position:fixed;bottom:-15px;text-align:center;width:84%">
 <nav style="text-align:center">
 <ul class="pagination">
 <li><a href="@redirectUrl/1" rel="external nofollow" >首頁(yè)</a></li>
 @{
 int pageNumber = (int)Math.Ceiling(amount / (count * 1.0));
 pageNumber = pageNumber < 1 ? 1 : pageNumber;
 //頁(yè)面上顯示的按鈕數(shù)目(不計(jì)首頁(yè)、末頁(yè)、上一頁(yè)、下一頁(yè)等按鈕),若頁(yè)面總數(shù)超過(guò)該值則繪制按鈕分隔符
 const int BUTTON_COUNT = 7;
 // 按鈕分隔符
 const string BUTTON_SEPARATOR = "......";
 //按鈕分隔符左側(cè)按鈕數(shù)目(不計(jì)首頁(yè)、末頁(yè)、上一頁(yè)、下一頁(yè)等按鈕)
 const int LEFT_BUTTON_COUNT = 4;
 //按鈕分隔符右側(cè)按鈕數(shù)目(不計(jì)首頁(yè)、末頁(yè)、上一頁(yè)、下一頁(yè)等按鈕)
 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)
 {
 <li><a id="next" href="@redirectUrl/@previous" rel="external nofollow" >上一頁(yè)</a></li>
 for (int i = 1; i <= BUTTON_COUNT; i++)
 {
 if ( selectedIndex >= LEFT_BUTTON_COUNT && selectedIndex%LEFT_BUTTON_COUNT==0 && i <= LEFT_BUTTON_COUNT)
 {
 <li><a name="pageButton" id="@selectedIndex" href="@redirectUrl/@selectedIndex" rel="external nofollow" >@selectedIndex</a></li>
 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;
 }
 <li><a name="pageButton" id="@tag" href="@redirectUrl/@tag" rel="external nofollow" rel="external nofollow" >@tag</a></li>
 }
 }
 else if (i <= LEFT_BUTTON_COUNT && selectedIndex<LEFT_BUTTON_COUNT)
 {
 <li><a name="pageButton" id="@i" href="@redirectUrl/@i" rel="external nofollow" rel="external nofollow" >@i</a></li>
 }
 else if (i < LEFT_BUTTON_COUNT && selectedIndex>LEFT_BUTTON_COUNT)
 {
 int step = selectedIndex / LEFT_BUTTON_COUNT;
 int tag = 0;
 <li><a name="pageButton" id="@(step*LEFT_BUTTON_COUNT)" href="@redirectUrl/@(step*LEFT_BUTTON_COUNT)" rel="external nofollow" >@(step*LEFT_BUTTON_COUNT)</a></li>
 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;
 }
 <li><a name="pageButton" id="@tag" href="@redirectUrl/@tag" rel="external nofollow" rel="external nofollow" >@tag</a></li>
 }
 }
 //繪制按鈕分隔符右側(cè)按鈕
 if (i==BUTTON_COUNT-1)
 {
 <li><a name="pageButton" id="@(pageNumber-1)" href="@redirectUrl/@(pageNumber-1)" rel="external nofollow" >@(pageNumber-1)</a></li>
 }
 else if(i==BUTTON_COUNT)
 {
 <li><a name="pageButton" id="@pageNumber" href="@redirectUrl/@pageNumber" rel="external nofollow" rel="external nofollow" >@pageNumber</a></li>
 }
 //繪制按鈕分隔符
 else if (i >= BUTTON_COUNT -RIGHT_BUTTON_COUNT)
 {
 <li><span name="pageButton">@BUTTON_SEPARATOR</span></li>
 }
 }
 <li><a id="next" href="@redirectUrl/@next" rel="external nofollow" >下一頁(yè)</a></li>
 }
 else
 {
 for (int i = 1; i <= pageNumber; i++)
 {
 <li><a name="pageButton" id="@i" href="@redirectUrl/@i" rel="external nofollow" rel="external nofollow" >@i</a></li>
 }
 }
 }
 <li><a href="@redirectUrl/@pageNumber" rel="external nofollow" rel="external nofollow" >末頁(yè)</a></li>
 </ul>
 </nav>
 </div>
 <script>
 $(function () {
 //設(shè)置被選中按鈕的背景色
 var selected = $('#@selectedIndex');
 if (selected != undefined) {
 selected.css('background-color', '#E1E1E1');
 }
 </script>
}

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

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

下面是幾張分頁(yè)按鈕效果圖:



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


聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼

ASP.NET MVC5 實(shí)現(xiàn)分頁(yè)查詢的示例代碼:對(duì)于大量數(shù)據(jù)的查詢和展示使用分頁(yè)是一種不錯(cuò)的選擇,這篇文章簡(jiǎn)要介紹下自己實(shí)現(xiàn)分頁(yè)查詢的思路。 分頁(yè)需要三個(gè)變量:數(shù)據(jù)總量、每頁(yè)顯示的數(shù)據(jù)條數(shù)、當(dāng)前頁(yè)碼。 //數(shù)據(jù)總量 int dataCount; //每頁(yè)顯示的數(shù)據(jù)條數(shù) int pageDataCount; int p
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产123区在线视频观看 | 亚洲自拍另类 | 五十路六十路 | 亚洲精品98久久久久久中文字幕 | 日韩在线一区二区 | 日韩精品免费视频 | 欧美成人免费高清二区三区 | 国产欧美日韩视频在线观看 | 亚洲欧美综合 | 在线观看欧美一区 | 一区二区三区在线免费视频 | 欧美在线综合 | 视频在线观看国产 | 极品美女户外勾搭无套 | 成人午夜精品久久久久久久小说 | 亚洲欧洲高清 | 久久伊人一区二区三区四区 | 在线观看日韩精品 | 91色欧美 | 日韩欧美在线综合网高清 | 久久综合爱 | 久久久久亚洲精品美女 | 久久91av| 国产码欧美日韩高清综合一区 | 日本国产最新一区二区三区 | 欧美第一页 | 在线视频 中文字幕 | 亚洲精品社区 | 日本成本人观看免费fc2 | 黄色在线免费看 | 欧美日韩视频一区二区三区 | 午夜免费福利视频 | 伊人色播| 亚洲一区 中文字幕 | 在线观看欧美日韩 | 在线国产视频观看 | 91久久偷偷看嫩草影院无费 | 最新国产精品视频免费看 | 在线视频区 | 成人亚洲国产综合精品91 | 亚洲精品电影 |