首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格视图分页-ASP.net mvc和linq.

网格视图分页-ASP.net mvc和linq.
EN

Stack Overflow用户
提问于 2012-12-10 14:20:20
回答 1查看 591关注 0票数 0

我使用的是nop commercer2.6 2.6,所以我想创建自定义报表,并对该报表进行分页。

这是我的函数

代码语言:javascript
复制
 public virtual IPagedList<HireItemReportLine> HireItemReport(int ceremony_id, string Fname, string Mname, string Lnmae, string emailAdd, int sesson_id, int pageIndex, int pageSize)
        {

            var query1 = from opv in _opvRepository.Table
                         join o in _orderRepository.Table on opv.OrderId equals o.Id
                         join gr in _graduandRepository.Table on opv.graduand_id equals gr.Id
                         join pv in _productVariantRepository.Table on opv.ProductVariantId equals pv.Id
                         join p in _productRepository.Table on pv.ProductId equals p.Id
                         join c in _ceremonyRepository.Table on gr.ceremony_id equals c.Id
                         join s in _seasonRepository.Table on c.season_id equals s.Id
                         where (!o.Deleted) && (opv.IsHireItem == true) &&
                         (!p.Deleted) &&
                         (!pv.Deleted)
                         select new
                         {
                             opvTable = opv,
                             grTable = gr,
                             seaTable = s,

                         };

            if (!(sesson_id == 0))
                query1 = query1.Where(item => item.seaTable.Id == sesson_id);

             if (!(ceremony_id == 0))                 
                 query1 = query1.Where(item => item.opvTable.ceremony_id == ceremony_id);

             if (!String.IsNullOrEmpty(Fname))
                 query1 = query1.Where(item => item.grTable.first_name == Fname);

             if (!String.IsNullOrEmpty(Mname))
                 query1 = query1.Where(item => item.grTable.middle_name == Mname);

             if (!String.IsNullOrEmpty(Lnmae))
                 query1 = query1.Where(item => item.grTable.last_name == Lnmae);

             if (!String.IsNullOrEmpty(emailAdd))
                 query1 = query1.Where(item => item.grTable.email == emailAdd);


             var query2 = from opv in query1
                          group opv by opv.opvTable.OrderId into g
                          select new
                          {
                              OrderId = g.Key,
                              TotalAmount = g.Sum(x => x.opvTable.PriceInclTax),


                          };
 int totalCount = query2.Count();
             query2 = query2.OrderByDescending(x => x.OrderId);

             var result = query2.ToList().Select(x =>
            {
                return new HireItemReportLine()
                {
                    OrderId = x.OrderId,                   
                    Amount= x.TotalAmount,

                };
            });

             var orders_1 = result.ToList();       


             return new PagedList<HireItemReportLine>(orders_1, pageIndex, pageSize,totalCount);
        } 

这是PagedLis()函数

代码语言:javascript
复制
 public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount)
    {
        TotalCount = totalCount;
        TotalPages = TotalCount / pageSize;

        if (TotalCount % pageSize > 0)
            TotalPages++;

        this.PageSize = pageSize;
        this.PageIndex = pageIndex;
        this.AddRange(source);

    }

我想把这个数据绑定到网格视图,它有分页功能。我可以绑定,它显示我的页面numbers.but我的问题是,当我点击页面no,在网格视图中,它总是只显示第一页。你有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-10 14:54:47

我认为使用第三方工具时,这些分页/排序/分组会变得更容易。但是,请检查下面的链接,使用LINQ在c#中进行分页/排序。

Custom Paging

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13795957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档