MVC之EF(调用存储过程的分页)

 今天写了分页,感觉有点难度,搞来搞去,最终还是解决了。我用的是调用存储过程的分页,
 这个的难度主要是在于存储过程的编写,说实在的其实我也不太会,感觉上很朦胧的。
 下面是用EF调用存储过程的方法:
   public List<GetStaff_Result> listStaff(int pageSize, int pageIndex, int DepId, string SearchName, DateTime Date_temp, ref int pageCount)
        {
            List<GetStaff_Result> list = new List<GetStaff_Result>();
            using (CustomerSysEntities2 cus = new CustomerSysEntities2())
            {
                //将内容存储到list中
                list = cus.GetStaff(pageSize, pageIndex, DepId, SearchName, Date_temp).ToList();
            }
            pageCount = (int)list[0].resultcount;//总页数
            //分配页数
            if (pageCount % pageSize == 0)
            {
                pageCount = pageCount / pageSize;
                return list;
            }
            else
            {
                pageCount = pageCount / pageSize + 1;
                return list;
            }


        }  

下面是Controller中相应的代码方法:

public ActionResult ManagerStaff(int pageIndex = 1, int DepId = 0, int pageCount=1, string SearchName = "")
        {
            //BindDepId();
            Session["current"] = "员工管理";
            DateTime Date_temp = new DateTime();
           string time = "1990/1/1";
           Date_temp = Convert.ToDateTime(time);
            int pageSize = 4;
            //int pageCount = 1;

            List<GetStaff_Result> list = new List<GetStaff_Result>();
            list=new StaffManager().listStaff(pageSize, pageIndex, DepId, SearchName, Date_temp, ref  pageCount);

            // 绑定下拉框
            BindDepId();
            // 向视图传递数据
            ViewBag.list = list;
            ViewBag.pageSize = pageSize;
            ViewBag.pageCount = pageCount;
            ViewBag.pageIndex = pageIndex;
            //return View(list);
            return View(list);
        }

还有就是页面的传值以及页码的设置:

<div style="text-align: center">
            @for (int i = 1; i <= ViewBag.pageCount; i++)
            { 

        <a href="@Url.Action("ManagerStaff", "OASys", new { pageIndex=i,DepId=this.ViewContext.HttpContext.Request.QueryString.Get("DepId")??"0",SearchName=this.ViewContext.HttpContext.Request.QueryString.Get("SearchName")??"",Date_temp=this.ViewContext.HttpContext.Request.QueryString.Get("Date_temp")??""})">@i </a>

            }    

    </div>

有问题的的可以再评论中说明,呵呵。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值