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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

(easyui datagrid+mvc+json)之asp.net分页查询

發(fā)布時(shí)間:2025/6/15 asp.net 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (easyui datagrid+mvc+json)之asp.net分页查询 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?最近在做分頁查詢的功能,在網(wǎng)上也翻看了不少,但是自己的吸收能力就差了好多,而且當(dāng)時(shí)最大的想法就是,怎么就沒有我想要的那種,既是easyui的,又要用mvc的架構(gòu),還要能夠?qū)崿F(xiàn)底層的分頁傳值,用.net平臺(tái)寫的demo,那時(shí)就想,等我做出來了,我也要寫一篇分頁查詢的博客,專門為了實(shí)現(xiàn)這種需求來做的demo

效果圖

? ? ?

前臺(tái)view

[html]?view plaincopyprint?
  • <table?id="list_data"?class="easyui-datagrid"?style="width:1075px;height:300px"?cellpascing="0"?cellpadding="0"????></table>??

  • [javascript]?view plaincopyprint?
  • <script?type="text/javascript">??
  • ????????//表格的樣式??
  • ????????$(function(){??
  • ???????????????????????????$('#list_data').datagrid({??
  • ???????????????????????????????title:?'建議',??
  • ???????????????????????????????iconCls:?'icon-view',?//圖標(biāo)??
  • ???????????????????????????????loadMsg:"數(shù)據(jù)加載中,請(qǐng)稍后......",??
  • ???????????????????????????????width:1056,??
  • ???????????????????????????????height:'auto',??
  • ???????????????????????????????nowrap:false,??
  • ???????????????????????????????striped:true,??
  • ???????????????????????????????border:true,??
  • ???????????????????????????????collapsible:false,?//是否可折疊??
  • ???????????????????????????????fit:true,?//自動(dòng)大小??
  • ???????????????????????????????url:?"/EvaluationSuggestion/GetData",???//controller的地址,controller的名字+返回json的方法??
  • ???????????????????????????????remoteSort:false,??
  • ???????????????????????????????singleSelect:true,??//是否單選??
  • ???????????????????????????????pagination:true,??//分頁控件??
  • ???????????????????????????????rownumbers:?false,??//行號(hào)??
  • ????????????????????????????????
  • ???????????????????????????????columns:?[[??
  • ????????????????????????????????????{?field:?'SuggestionContent',?title:?'建議',?width:?'1056'?},??//選擇??
  • ???????????????????????????????]],??
  • ???????????????????????????});??
  • ???????????????????????????????//設(shè)置分頁控件??
  • ???????????????????????????????var?p=$('#list_data').datagrid('getPager');??
  • ???????????????????????????????$(p).pagination({??
  • ???????????????????????????????pageNumber:1,?//默認(rèn)顯示第幾頁???
  • ???????????????????????????????pageSize:10,??
  • ???????????????????????????????pageList:[5,10,15],??
  • ???????????????????????????????beforePageText:'第',??
  • ???????????????????????????????afterPageText:'頁?????共{pages}頁',??
  • ???????????????????????????????displayMsg:'當(dāng)前顯示{from}-{to}條記錄??共{total}條記錄'??
  • ???????????????????????????});??
  • ????????????????????????
  • ????????});??
  • ??
  • ?????????</script>??
  • 解說:如果想要進(jìn)行分頁,首先就必須將datagrid的屬性pagination設(shè)置為true

    pager是分頁欄,這個(gè)標(biāo)簽用來設(shè)置分頁的總體參數(shù),

    url是鏈接的重要根地址,pager標(biāo)簽會(huì)在這個(gè)鏈接的基礎(chǔ)上附加分頁參數(shù)。

    ?

    Controller.cs

    [csharp]?view plaincopyprint?
  • #region?查詢建議的controller??
  • ??????///?<summary>??
  • ??????///?查詢建議的controller??
  • ??????///?</summary>??
  • ??????///?<returns>返回值action,用于與view層交互</returns>??
  • ??????public?ActionResult?SuggestionIndex()??
  • ??????{??
  • ??????????
  • ????????????return?View();??
  • ??????}??
  • ??????#endregion??
  • ?
  • ??????#region?將建議數(shù)據(jù)轉(zhuǎn)換成json字符串??
  • ??????///?<summary>??
  • ??????///?將建議數(shù)據(jù)轉(zhuǎn)換成json字符串??
  • ??????///?</summary>??
  • ??????///?<returns>返回json字符串</returns>??
  • ??????public?JsonResult??GetData()??
  • ??????{??
  • ??????????IEvaluationSuggestionWCF?suggestion?=?ServiceFactory.GetEvaluationSuggestion();??
  • ??????????List<EvaluationSuggestion>?lstResut?=?new?List<EvaluationSuggestion>();??
  • ??????????//接收datagrid傳來的參數(shù)??
  • ??????????var?pageIndex?=?int.Parse(Request["page"]);??//當(dāng)前頁??
  • ??????????var?pageSize?=?int.Parse(Request["rows"]);??//頁面行數(shù)??
  • ??????????var?total?=?0;??
  • ??????????lstResut?=?suggestion.QuerySuggestionbyPage(pageSize,?pageIndex,?out?total);??
  • ??????????var?data?=?new??
  • ??????????{??
  • ??????????????total,??
  • ??????????????rows?=?lstResut??
  • ??????????};??
  • ??????????return?Json(data,?JsonRequestBehavior.AllowGet);??
  • ??
  • ??????}??
  • ??????#endregion??
  • 解說:pagerows是直接可以從前臺(tái)獲取的。data設(shè)置數(shù)據(jù)格式,轉(zhuǎn)換成Json字符串后,能夠在分頁中正確獲取。


    服務(wù)端

    [csharp]?view plaincopyprint?
  • #region?分頁查詢?+?排序:??
  • ????????///?<summary>??
  • ????????///?分頁查詢?+?排序??
  • ????????///?</summary>??
  • ????????///?<typeparam?name="Tkey">泛型</typeparam>??
  • ????????///?<param?name="pageSize">每頁大小</param>??
  • ????????///?<param?name="pageIndex">當(dāng)前頁碼</param>??
  • ????????///?<param?name="total">總數(shù)量</param>??
  • ????????///?<param?name="orderbyLambda">排序條件</param>??
  • ????????///?<param?name="isAsc">是否升序</param>??
  • ????????///?<returns>IQueryable?泛型集合</returns>??
  • ????????public?IQueryable<T>?LoadPageItems<Tkey>(int?pageSize,?int?pageIndex,?out?int?total,?Func<T,?Tkey>?orderbyLambda,?bool?isAsc)??
  • ????????{??
  • ????????????total?=?MyBaseDbContext.Set<T>().Count();??
  • ????????????if?(isAsc)??
  • ????????????{??
  • ????????????????var?temp?=?MyBaseDbContext.Set<T>().OrderBy<T,?Tkey>(orderbyLambda)??
  • ?????????????????????????????.Skip(pageSize?*?(pageIndex?-?1))??
  • ?????????????????????????????.Take(pageSize);??
  • ????????????????return?temp.AsQueryable();??
  • ????????????}??
  • ????????????else??
  • ????????????{??
  • ????????????????var?temp?=?MyBaseDbContext.Set<T>().OrderByDescending<T,?Tkey>(orderbyLambda)??
  • ???????????????????????????.Skip(pageSize?*?(pageIndex?-?1))??
  • ???????????????????????????.Take(pageSize);??
  • ????????????????return?temp.AsQueryable();??
  • ????????????}??
  • ????????}??
  • ????????#endregion??
  • 解說:這個(gè)是我們底層的類庫,我直接貼過來的,底層使用EF,涉及到lambda表達(dá)式。不過除去形式,分頁查詢的思想都是一樣的,真分頁,根據(jù)記錄總數(shù),每頁記錄數(shù)和當(dāng)前頁碼,獲取當(dāng)前頁碼的數(shù)據(jù)集合。頁數(shù)=總記錄數(shù)/每頁記錄數(shù)。當(dāng)前頁碼的數(shù)據(jù)集合,向數(shù)據(jù)庫傳遞條件篩選,from(當(dāng)前頁碼-1*每頁記錄數(shù)?to當(dāng)前頁碼*每頁記錄數(shù)獲取當(dāng)前頁碼數(shù)據(jù)集合。具體實(shí)現(xiàn)自己來做吧。

    總結(jié)

    以上是生活随笔為你收集整理的(easyui datagrid+mvc+json)之asp.net分页查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。