日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net中条件查询+分页

發布時間:2023/12/3 asp.net 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net中条件查询+分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是雄雄,歡迎關注公眾號:雄雄的小課堂。

今天,分享的是asp.net中條件查詢+分頁的小案例。

如下圖所示:

各個功能模塊均已標注,先大致介紹一下業務。

\1. 點擊左側圖書類別,根絕類別編號在右側查詢顯示該類別中的所有圖書列表(分頁查詢)

\2. 下拉排序方式,可以根據價格排序和出版日期排序。當下拉列表改變值時,圖書列表按照排序方式改變。

\3. 右上角顯示為分頁信息,左箭頭表示上一頁,右箭頭表示下一頁。

數據訪問層(DAL):

1.需要根據“類別編號”“當前頁”“頁大小”以及“排序方式”查詢圖書列表,代碼如下:

// 1.當前頁,頁大小,類別,排序依據--》得到數據集合public List<Books> GetPageBooks(int currPage, int pageSize, string orderBy, int cateId){string sql = "select top " + pageSize + " * from Books where id not in (select top " + (currPage - 1) * pageSize + " id from Books where CategoryId = " + cateId + " order by " + orderBy + ") and CategoryId = " + cateId + " order by " + orderBy + "";List<Books> bList = new List<Books>();SqlDataReader dr = SqlHelper.ExecuteReader(sql, null);while (dr.Read()){Books b = new Books();b.Id = Convert.ToInt32(dr[0]);b.Title = dr[1].ToString();b.Author = dr[2].ToString();b.PublisherId = Convert.ToInt32(dr[3].ToString());b.PublishDate = Convert.ToDateTime(dr[4].ToString());b.ISBN = dr[5].ToString();b.UnitPrice = Convert.ToDouble(dr[6].ToString());b.ContentDescription = dr[5].ToString();b.CategoryId = Convert.ToInt32(dr[0]);b.Clicks = Convert.ToInt32(dr[0]);bList.Add(b);}return bList;}

2.需要根據類別查詢總記錄數,從而在前臺計算總頁數,代碼如下:

//總記錄數//類別public int GetTotalNum(int cateId){int rel = 0;string sql = "select count(*) from Books where CategoryId = @CategoryId";SqlParameter[] param = { new SqlParameter("@CategoryId", cateId) };rel = Convert.ToInt32(SqlHelper.ExecuteScalar(sql, param));return rel;}

業務邏輯層(BLL):

將DAL的兩個方法可以結合起來,將數據集合(圖書列表)和總記錄數(根據類別查詢)帶出去,在控制器中獲取,代碼如下:

public List<Books> GetPageList(int currPage, int pageSize, string orderBy, int cateId, out int totalNum){totalNum = bs.GetTotalNum(cateId);return bs.GetPageBooks(currPage, pageSize, orderBy, cateId);}

前臺業務分析:

點擊類別,展示圖書列表比較簡單,這里一帶而過,不細說,代碼如下(利用了內聯視圖):

<%List<BookShop.Models.Categories> cateList = ViewData["cateList"] as List<BookShop.Models.Categories>;foreach(BookShop.Models.Categories cate in cateList){%><li><%=Html.ActionLink(cate.Name, "BooksList", "Books", new { id=cate.Id}, null)%></li> <%}%>

圖書列表頁:圖書列表通過強類型視圖遍歷展示。

接下來,我們可以將當前頁、排序方式放在form表單中往控制器中傳值(不放也可以,利用jQuery直接獲取值,稍微麻煩點),當改變下拉列表的值時,提交form表單,form表單的代碼如下:

<form action="<%=Url.Action("BooksList", "Books", new {id=ViewData["cateid"]})%>" method="post" id="mainForm"><input type="hidden" name="orderBy" value="<% =ViewData["orderBy"] %>"/><input type="hidden" name="currPage" value="<% =ViewData["currPage"] %>"/></form>

相關jquery代碼如下:

<script type="text/javascript">//jQuery代碼$(function () {var orderBy = $("input[name='orderBy']").val();$("select[name='list_type']").val(orderBy);$("select[name='list_type']").change(function () {$("input[name='orderBy']").val($(this).val());$("input[name='currPage']").val(1);$("#mainForm").submit();});});</script>

上一頁:

點擊上一頁時,獲取表單中當前頁的值,然后進行判斷,如果當前頁是第一頁,則無序操作,否則當前也減1,最后提交表單。

//上一頁$("#turn_pre").click(function () {//當前頁減1var currPage = $("input[name='currPage']").val();if (currPage > 1) {currPage = currPage-1;}$("input[name='currPage']").val(currPage);$("#mainForm").submit();});

下一頁:

點擊下一頁時,獲取表單中當前頁的值,還需要獲取控制器往頁面傳遞的總頁數,然后進行判斷,如果當前頁等于總頁數,則無序操作,否則當前頁加1,最后提交表單。

//下一頁$("#turn_next").click(function () {//當前頁減1var currPage = $("input[name='currPage']").val();var totalPage = <%=ViewData["totalPage"]%>;if(totalPage!=currPage){currPage = parseInt(currPage) + 1;}$("input[name='currPage']").val(currPage);$("#mainForm").submit();});

控制器(BooksController):

首先,根據前臺頁面的需求,我們可以知悉,控制器的動作方法中,最少需要【當前頁】【頁大小】【類別編號】【排序方式】幾個值,【當前頁】和【排序方式】我們可以直接從form表單中獲取,【類別編號】可以從路由中獲取,【頁大小】直接寫成死的就可以,代碼如下:

public ActionResult BooksList() {//類別號int cateid =Convert.ToInt32(RouteData.Values["id"]);//排序依據string orderBy = Request.Form["orderBy"] == null ? "PublishDate" : Request.Form["orderBy"];//當前頁int currPage = Request.Form["currPage"] == null ? 1 : Convert.ToInt32(Request.Form["currPage"]);//頁大小int pageSize = 5;int totalNum = 0;List<Books> bList = bm.GetPageList(currPage, pageSize, orderBy, cateid, out totalNum);ViewData["currPage"] = currPage;ViewData["orderBy"] = orderBy;ViewData["cateid"] = cateid;int totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : (totalNum / pageSize) + 1;ViewData["totalPage"] = totalPage;return View(bList);}

總結

以上是生活随笔為你收集整理的asp.net中条件查询+分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人一区二区三区影院在线 | 天堂av8| 日日日日操 | 乱图区 | 日韩精品一区在线观看 | 国产av电影一区 | 欧美激情视频一区 | 未满十八岁禁止进入 | 性色av蜜臀av | 免费看美女被靠到爽的视频 | 日本一区二区三区视频免费看 | 精品国产一区二区三区在线 | 欧美四级在线观看 | 亚洲福利久久 | 小辣椒福利视频导航 | 啪一啪在线 | 毛片一区二区三区 | 91麻豆视频在线观看 | 久久看毛片 | 国产xxx视频 | 日韩电影一区二区三区 | 国产swag在线观看 | 一本到在线视频 | 少妇一级淫片 | 天天爽夜夜春 | 欧美成人精品在线观看 | china国模大尺度pics | 欧美午夜精品久久久久久人妖 | 中文字幕97 | 国产欧美一级 | 香蕉精品在线 | 亚洲理论中文字幕 | 动漫av在线播放 | 天堂8中文在线 | 欧美性猛交xxxx乱大交3 | 伊人77 | 午夜影剧院 | 亚洲大尺度av| 伊人蕉久 | 国产美女久久久久久 | 开心激情网站 | 久久99精品国产麻豆婷婷 | 亚洲毛片在线免费观看 | 欧美日韩三级在线观看 | 中文字幕第一页久久 | 日韩精品一区二区三区高清免费 | 美国免费高清电影在线观看 | 国产一区欧美二区 | 成人国产一区二区 | 亚洲高清毛片 | 女人下边被添全过视频 | 亚洲天堂精品一区 | 精品国产一区二区三区四区阿崩 | 超碰在线色 | 国产精品高潮呻吟av | 黄色一级片国产 | 国产深喉视频一区二区 | 午夜亚洲 | 丝袜美女啪啪 | 熟妇人妻精品一区二区三区视频 | 国产午夜电影在线观看 | 日韩女优在线播放 | 在线观看免费观看在线 | 久久久夜色 | 黄瓜视频在线观看 | 自拍偷拍视频在线观看 | 在线欧美视频 | 黄色免费一级片 | 伊人久久青草 | 日韩亚洲在线观看 | 久久黄色片视频 | 波多野结衣在线观看一区二区 | 成人xxxx| 视频丨9l丨白浆 | 九色视频网站 | 熟妇人妻无乱码中文字幕真矢织江 | 色狠 | 国产精品一区在线免费观看 | 狼人色综合 | 国产一区自拍视频 | 色站综合| 91传媒视频在线观看 | 欧美69囗交视频 | 少妇把腿扒开让我舔18 | 成年人小视频在线观看 | 男人天堂av网站 | 91情侣在线 | 中文字幕一区视频 | 影音先锋人妻啪啪av资源网站 | 日本韩国欧美中文字幕 | 激情 小说 亚洲 图片 伦 | 欧美妞干网 | 精品国产免费视频 | 曰本三级日本三级日本三级 | 中文字幕免费高清在线 | 日本黄色视屏 | 日本少妇xxx | 动漫美女无遮挡免费 | 男人操女人的免费视频 |