怎么在MVC中使用MvcPager实现分页
创始人
2024-11-28 10:21:14
0次

一.MvcPager异步

 ViewModel: 

 public class Article
 {
 [Display(Name = "信息编号")]
 public int ID { get; set; }

 [Display(Name = "信息标题")]
 public string Title { get; set; }

 [Display(Name = "信息内容")]
 public string Content { get; set; }
 }
 public class AjaxPager
 {
 public PagedList
 Articles { get; set; }   }

Control:

/// 
 /// 异步分页测试
 /// 
 /// pageIndex
 /// 关键字
 /// 
 public ActionResult AjaxPaging(int? id = 1, string key = null)
 {
  int totalCount = 0;
  int pageIndex = id ?? 1;
  int pageSize = 2;
  List
 infoList = new SoleFuDAL.MyTest().GetArticleList(key, pageSize, (pageIndex - 1) * 2, out totalCount);   PagedList
 InfoPager = infoList.AsQueryable().OrderByDescending(o => o.ID).ToPagedList(pageIndex, pageSize);   InfoPager.TotalItemCount = totalCount;   InfoPager.CurrentPageIndex = (int)(id ?? 1);   Models.MyTest.AjaxPager model = new Models.MyTest.AjaxPager();   model.Articles = InfoPager;   if (Request.IsAjaxRequest())   {   return PartialView("_ArticleList", model);   }   return View(model);  }

View: 

@model soulefu_manage.Models.MyTest.AjaxPager
@using Webdiyer.WebControls.Mvc;





 
 MVCPager-AjaxPaging
 
 


 
 @using (Html.BeginForm("AjaxPaging", "MyTest", new RouteValueDictionary { { "id", "" } }, FormMethod.Get))
 {
  @Html.Label("关键字:") 
 }

 @*分页Table*@
 @{ Html.RenderPartial("_ArticleTable"); }

 
  @Ajax.Pager(Model.Articles, new PagerOptions
  {
  PageIndexParameterName = "id",
  FirstPageText = "首页",
  PrevPageText = "上一页",
  NextPageText = "下一页",
  LastPageText = "末页",
  NumericPagerItemCount = 5,
  ContainerTagName = "ul",
  CssClass = "pagination",
  CurrentPagerItemTemplate = "{0}",
  DisabledPagerItemTemplate = "{0}",
  PagerItemTemplate = "
  • {0}
  • "   }).AjaxOptions(a => a.SetUpdateTargetId("articles"))  
     
    @model soulefu_manage.Models.MyTest.AjaxPager
    
    
     
     序号
     
      标题
     
     
      内容
     
     
     @foreach (var item in Model.Articles)
     {
     
      @Html.DisplayFor(model => item.ID)
      
      @Html.DisplayFor(modelItem => item.Title)
      
      
      @Html.DisplayFor(modelItem => item.Content)
      
     
     }
    

    二.MvcPager同步
      ViewModel(此处可不增加,直接和异步的共用同一个): 

     public class MVCPager
     {
     //信息列表
     public PagedList
     Articles { get; set; }  }

    Control: 

     /// 
     /// 同步分页测试
     /// 
     /// pageIndex
     /// 关键字
     /// 
     public ActionResult MVCPager(int? id = 1, string key = null) 
     {
      int totalCount = 0;
      int pageIndex = id ?? 1;
      int pageSize = 2;
      List
     infoList = new SoleFuDAL.MyTest().GetArticleList(key, pageSize, (pageIndex - 1) * 2, out totalCount);   PagedList
     InfoPager = infoList.AsQueryable().OrderByDescending(o => o.ID).ToPagedList(pageIndex, pageSize);   InfoPager.TotalItemCount = totalCount;   InfoPager.CurrentPageIndex = (int)(id ?? 1);   //数据组装到viewModel   Models.MyTest.MVCPager model = new Models.MyTest.MVCPager();   model.Articles = InfoPager;   return View(model);  }

    View: 

    @model soulefu_manage.Models.MyTest.MVCPager
    @using Webdiyer.WebControls.Mvc;
    
    
    
    
    
     
     MVCPager
     
     
    
    
     
     @using (Html.BeginForm("MVCPager", "MyTest", new RouteValueDictionary { { "id", "" } }, FormMethod.Get))
     {
      @Html.Label("关键字:")
     }
    
     
      
      编号
      标题
      内容
      
      @foreach (var info in Model.Articles)
      {
      
       @Html.DisplayFor(model => info.ID)
       @Html.DisplayFor(model => info.Title)
       @Html.DisplayFor(model => info.Content)
      
      }
     
    
     
      
     
     

    获取测试数据方法(共用):

     public class MyTest
     {
     /// 
     /// 获取测试数据
     /// 
     /// 
     /// 
     /// 
     /// 
     /// 
     public List
     GetArticleList(string key, int PageSize, int CurrentCount, out int TotalCount)  {   string tabName = string.Format("Article");   string strWhere = " 1=1";   if (!string.IsNullOrEmpty(key))   {   //SQL关键字过滤 包含关键字则不拼接SQL   if (!SqlInjection.GetString(key))   {    strWhere += string.Format(" AND (Title LIKE '%{0}%' OR Content LIKE '%{0}%')", key);   }   }   string Order = string.Format("ID ASC");   DataSet ds = SqlHelper.GetList(SqlHelper.connStr, Order, PageSize, CurrentCount, tabName, strWhere, out TotalCount);   List
     list = new List
    ();   if (ds != null && ds.Tables.Count > 0)   {   foreach (DataRow dr in ds.Tables[0].Rows)   {    Article model = new Article();    model.ID = Convert.ToInt32(dr["ID"]);    model.Title = dr["Title"].ToString();    model.Content = dr["Content"].ToString();    list.Add(model);   }   }   return list;  }  }

    相关内容

    热门资讯

    空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
    空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
    格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
    空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
    格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
    品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
    空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
    空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
    中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
    中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...