MVC+EF+PagedList+调用通用存储封装+多表联合信息展示分页+存储过程分页
主要的技术点不在这里一一阐述,相关存储也是引用别人的,主要技术点就是通过最优性能方式处理需求,PagedList.包需要在线安装就可以
直接上干货
1、存储代码之第一种: 参数相对多点
- /**//*
- @strTable --要显示的表或多个表的连接
- @strField --要查询出的字段列表,*表示全部字段
- @pageSize --每页显示的记录个数
- @pageIndex --要显示那一页的记录
- @strWhere --查询条件,不需where
- @strSortKey --用于排序的主键
- @strSortField --用于排序,如:id desc (多个id desc,dt asc)
- @strOrderBy --排序,0-顺序,1-倒序
- @UsedTime --耗时测试时间差
- @RecordCount --总记录数
- @pageCount --总页数
- */
- ALTER PROCEDURE [dbo].[fyPager]
- @strTable varchar(1000) = '[dbo].[ttable]',
- @strField varchar(1000) = '*',
- @pageSize int = 10,
- @pageIndex int = 1,
- @strWhere varchar(1000) = '1=1',
- @strSortKey varchar(1000) = 'id',
- @strSortField varchar(500) = 'id DESC',
- @strOrderBy bit = 1,
- @RecordCount int output, --总记录数
- @pageCount int output
- --@UsedTime int OUTPUT
- AS
- SET NOCOUNT ON
- Declare @sqlcount INT
- Declare @timediff DATETIME
- select @timediff=getdate()
- Begin Tran
- DECLARE @sql nvarchar(1000),@where1 varchar(200),@where2 varchar(200)
- IF @strWhere is null or rtrim(@strWhere)=''
- BEGIN--没有查询条件
- SET @where1=' WHERE '
- SET @where2=' '
- END
- ELSE
- BEGIN--有查询条件
- SET @where1=' WHERE ('+@strWhere+') AND ' --本来有条件再加上此条件
- SET @where2=' WHERE ('+@strWhere+') ' --原本没有条件而加上此条件
- END
- --SET @sql='SELECT @intResult=COUNT(*) FROM '+@strTable+@where2
- BEGIN
- SET @sql='SELECT @sqlcount=COUNT(*) FROM (select '+@strSortKey+' from '+ @strTable + @where2 +') As tmptab'
- END
- --print @sql
- EXEC sp_executesql @sql,N'@sqlcount int OUTPUT',@sqlcount OUTPUT --计算总记录数
- SELECT @RecordCount = @sqlcount --设置总记录数
- IF @pageIndex=1 --第一页
- BEGIN
- SET @sql='SELECT TOP '+CAST(@pageSize AS varchar(200))+' '+@strField+' FROM '+@strTable+@where2+'ORDER BY '+ @strSortField
- END
- Else
- BEGIN
- IF @strOrderBy=0
- SET @sql='SELECT TOP '+CAST(@pageSize AS varchar(200))+' '+@strField+ ' FROM '+
- @strTable+@where1+@strSortKey+'>(SELECT MAX('+case when charindex('.',@strSortKey)>0 then right(@strSortKey,len(@strSortKey)-charindex('.',@strSortKey)) else @strSortKey end+') '+ ' FROM (SELECT TOP '+
- CAST(@pageSize*(@pageIndex-1) AS varchar(200))+' '+@strSortKey+' FROM '+@strTable+@where2+
- 'ORDER BY '+@strSortField+') t) ORDER BY '+@strSortField
- ELSE
- SET @sql='SELECT TOP '+CAST(@pageSize AS varchar(200))+' '+@strField+' FROM '+@strTable+@where1+
- @strSortKey+'<(SELECT MIN('+case when charindex('.',@strSortKey)>0 then right(@strSortKey,len(@strSortKey)-charindex('.',@strSortKey)) else @strSortKey end+') '+ ' FROM (SELECT TOP '+CAST(@pageSize*(@pageIndex-1) AS varchar(200))+' '+
- @strSortKey+' FROM '+@strTable+@where2+'ORDER BY '+@strSortField+') t) ORDER BY '+@strSortField+''
- END
- print @sql
- EXEC(@sql)
- print @sql
- If @@Error <> 0
- Begin
- RollBack Tran
- Return -1
- End
- Else
- Begin
- Commit TRAN
- --set @UsedTime = datediff(ms,@timediff,getdate())
- --select datediff(ms,@timediff,getdate()) as 耗时
- Return @sqlcount
- End
执行测试:
- USE [test]
- GO
- DECLARE @return_value int,
- @RecordCount int,
- @pageCount int
- EXEC @return_value = [dbo].[fyPager]
- @strTable = N'TRA_BargainOrder_Test A join UserInfo_test B ON A.UserID = B.Id',
- @strField = N'*',
- @pageSize = 10,
- @pageIndex = 9,
- @strWhere = N'',
- @strSortKey = N'TRA_BargainOrder_TestID',
- @strSortField = N'TRA_BargainOrder_TestID desc',
- @strOrderBy = 1,
- @RecordCount = @RecordCount OUTPUT,
- @pageCount = @pageCount OUTPUT
- SELECT @RecordCount as N'@RecordCount',
- @pageCount as N'@pageCount'
- SELECT 'Return Value' = @return_value
- GO
2、VIEW 页面层 GxFy_PageList2.cshtml
- <link href="~/Content/bootstrap.css" rel="stylesheet" />
- <link href="~/Content/PagedList.css" rel="stylesheet" />
- @model PagedList.StaticPagedList<Models.TRA_BargainOrder_Test>
- @using PagedList.Mvc
- @using PagedList
- @using (Html.BeginForm("Index", "Home", FormMethod.Get))
- {
- <div class="well">
- <table class="table">
- @* <thead>
- <tr>
- <th>
- <input id="UserName" name="UserName" type="text" placeholder="请输入用户名" />
- </th>
- <th>
- <input id="OrderNum" name="OrderNum" type="text" placeholder="请输入订单号" />
- </th>
- <th>
- <input id="Submit1" type="submit" value="submit" />
- </th>
- </tr>
- </thead>*@
- <tr>
- <th>用户名</th>
- <th>地址</th>
- <th>订单编号</th>
- <th>城市代号</th>
- <th>时间</th>
- <th>订单状态</th>
- </tr>
- <tbody>
- @* @foreach (var item in ViewBag.List) *@
- @*用model展示数据*@
- @foreach (var item in Model)
- {
- <tr>
- <td>@item.UserName </td>
- <td>@item.LocalAddress </td>
- <td>@item.BargainOrderCode </td>
- <td>@item.CityCode </td>
- <td>@item.UpdateTime </td>
- <td>@item.OrderStatus </td>
- </tr>
- }
- </tbody>
- <tfoot>
- <tr>
- <td colspan="5">
- <div class="">
- @if (Model != null)
- {
- <span style="height: 20px; line-height: 20px;">共 @Model.TotalItemCount.ToString() 条记录,当前第 @Model.PageNumber 页/共 @Model.PageCount 页 </span>
- @Html.PagedListPager(Model, pageindex => Url.Action("GxFy_PageList2", new { pageindex }), new PagedListRenderOptions() { LinkToFirstPageFormat = "首页", LinkToNextPageFormat = "下一页", LinkToPreviousPageFormat = "上一页", LinkToLastPageFormat = "末页", DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 3 })
- }
- </div>
- </td>
- </tr>
- </tfoot>
- </table>
- </div>
- }
3、Controller 控制器代码:
- public ActionResult GxFy_PageList2(string orderNO, int pageindex = 1, int pageSize = 10)
- {
- orderNO = "20185555555443342";
- #region 分页
- int RecordCount = 0;
- int pageCount = 0;
- string strField = "*";
- int strOrderBy = 1;
- string strSortField = "CreateTime desc";
- string strSortKey = "TRA_BargainOrder_TestID";
- //string strTable = "TRA_BargainOrder_Test";//单表
- string strTable = "TRA_BargainOrder_Test A join UserInfo_test B ON A.UserID = B.Id";// 多表联合查询
- string strWhere = "1=1";
- int UsedTime = 0;
- #endregion
- #region 参数处理
- //if (!string.IsNullOrEmpty(orderNO))
- // {
- // pageinationInfo.strWhere += " and BargainOrderCode like '%" + orderNO.Trim() + "%'";
- // }
- //if (!string.IsNullOrEmpty(orderNO))
- //{
- // strWhere += "and BargainOrderCode =" + orderNO.Trim() + "";
- //}
- #endregion
- PageinationInfoService Service = new PageinationInfoService();
- IList<TRA_BargainOrder_Test> List = Service.Get_PageinationInfoList<TRA_BargainOrder_Test>(strTable, strField, pageSize, pageindex, strWhere, strSortKey, strSortField, strOrderBy, out RecordCount,out pageCount);
- #region 传值
- //pageNumber,pageSize 我们已经传递到View,可以通过相关插件展现分页效果 在这里进行pagedlist分页
- //pagedList还提供了另外一种方法:StaticPagedList 方法
- //StaticPagedList 方法需要提供四个参数,分别为:数据源 当前页码 每页条数 以及总记录数
- var PageList = new StaticPagedList<TRA_BargainOrder_Test>(List, pageindex, 10, RecordCount);
- #region 页面用 ViewBag.List 显示列表信息时可以使用一下方式
- //页面用 ViewBag.List 显示列表信息时可以使用一下方式
- //// ViewBag.List = List;
- //ViewBag.List = PageList;
- //ViewBag.pageNumber = pageindex;
- //ViewBag.pageSize = pageSize;
- //ViewBag.RecordCount = RecordCount;
- //ViewBag.BargainOrderCode = orderNO;
- //return View();
- #endregion
- #region 页面用PagedList.StaticPagedList medel 实体展示分页数据
- return View(PageList);
- #endregion
- #endregion
- }
4、调用封装的存储通用类 PageinationInfoService
- public class PageinationInfoService
- {
- /// <summary>
- /// 获取分页列表 一种写法
- /// 传入的参数是实体和PageinationInfo,实体主要是用于接收数据并封装到实体中
- /// </summary>
- /// <param name="pageinationInfo"></param>
- /// <returns></returns>
- public IList<Entity> GetPageinationInfoList<Entity>(PageinationInfo pageinationInfo) where Entity : class
- {
- dynamic result = null;
- using (DefaultDbContext db = new DefaultDbContext())
- {
- #region SqlParameter参数
- SqlParameter[] paras = new SqlParameter[9];
- paras[0] = new SqlParameter("strTable", DbType.String);
- paras[0].Value = pageinationInfo.strTable;
- paras[1] = new SqlParameter("strField", DbType.String);
- paras[1].Value = pageinationInfo.strField;
- paras[2] = new SqlParameter("pageSize", DbType.Int32);
- paras[2].Value = pageinationInfo.pageSize;
- paras[3] = new SqlParameter("pageIndex", DbType.Int32);
- paras[3].Value = pageinationInfo.pageIndex;
- paras[4] = new SqlParameter("strWhere", DbType.String);
- paras[4].Value = pageinationInfo.strWhere;
- paras[5] = new SqlParameter("strSortKey", DbType.String);
- paras[5].Value = pageinationInfo.strSortKey;
- paras[6] = new SqlParameter("strSortField", DbType.String);
- paras[6].Value = pageinationInfo.strSortField;
- paras[7] = new SqlParameter("strOrderBy", DbType.Boolean);
- paras[7].Value = pageinationInfo.strOrderBy;
- paras[8] = new SqlParameter("RecordCount", DbType.Int32);
- paras[8].Value = pageinationInfo.RecordCount;
- paras[8].Direction = ParameterDirection.Output;
- paras[9] = new SqlParameter("pageCount", DbType.Int32);
- paras[9].Value = pageinationInfo.RecordCount;
- paras[9].Direction = ParameterDirection.Output;
- // paras[9] = new SqlParameter("UsedTime", DbType.Int32);
- // paras[9].Value = pageinationInfo.UsedTime;
- //paras[9].Direction = ParameterDirection.Output;
- #endregion
- try
- {
- result = db.Database.SqlQuery<Entity>("exec SP_Procedure_PageGX @strTable,@strField,@pageSize,@pageIndex,@strWhere,@strSortKey,@strSortField,@strOrderBy,@RecordCount output,@pageCount output", paras).ToList(); //,@UsedTime output
- pageinationInfo.RecordCount = (int)paras[8].Value;
- pageinationInfo.PageCount = (int)paras[9].Value;
- // pageinationInfo.UsedTime = (int)paras[9].Value;
- }
- catch (Exception ex)
- {
- throw (ex);
- }
- }
- return result;
- }
- /// <summary>
- /// 第二种 封装直接传参写法 传入的参数是实体
- /// </summary>
- /// <typeparam name="Entity"></typeparam>
- /// <returns></returns>
- public IList<Entity> Get_PageinationInfoList<Entity>(string strTable, string strField, int pageSize, int pageIndex, string strWhere, string strSortKey, string strSortField, int strOrderBy, out int RecordCount, out int PageCount) where Entity : class
- {
- dynamic result = null;
- using (DefaultDbContext db = new DefaultDbContext())
- {
- SqlParameter[] parameters =
- {
- new SqlParameter("@strTable", SqlDbType.VarChar),
- new SqlParameter("@strField", SqlDbType.VarChar),
- new SqlParameter("@pageSize", SqlDbType.Int),
- new SqlParameter("@pageIndex", SqlDbType.Int),
- new SqlParameter("@strWhere", SqlDbType.VarChar),
- new SqlParameter("@strSortKey", SqlDbType.VarChar),
- new SqlParameter("@strSortField", SqlDbType.VarChar),
- new SqlParameter("@strOrderBy", SqlDbType.Int),
- new SqlParameter("@RecordCount", SqlDbType.Int),
- new SqlParameter("@pageCount", SqlDbType.Int)
- };
- parameters[0].Value = strTable;
- parameters[1].Value = strField;
- parameters[2].Value = pageSize;
- parameters[3].Value = pageIndex;
- parameters[4].Value = strWhere;
- parameters[5].Value = strSortKey;
- parameters[6].Value = strSortField;
- parameters[7].Value = strOrderBy;
- parameters[8].Direction = ParameterDirection.Output;
- parameters[9].Direction = ParameterDirection.Output;
- var data = db.Database.SqlQuery<Entity>("exec fyPager @strTable,@strField,@pageSize,@pageIndex,@strWhere,@strSortKey,@strSortField,@strOrderBy,@RecordCount output,@pageCount output", parameters).ToList();
- int count = data.Count;
- //
- string Rcount = parameters[8].Value.ToString();
- string Pagecount = parameters[9].Value.ToString();
- //
- PageCount = !string.IsNullOrEmpty(Pagecount) ? int.Parse(Pagecount) : 0;
- RecordCount = !string.IsNullOrEmpty(Rcount) ? int.Parse(Rcount) : 0;
- return data;
- }
- }
- /// <summary>
- /// 第三种 封装直接传参写法
- /// </summary>
- /// <typeparam name="Entity"></typeparam>
- /// <param name="pageinationInfo"></param>
- /// <returns></returns>
- public IList<Entity> Get_PageinationInfo_List<Entity>(string strTable, string strField, string strSortField, string strWhere, int pageSize, int pageIndex, out int PageCount, out int RecordCount ) where Entity : class
- {
- dynamic result = null;
- using (DefaultDbContext db = new DefaultDbContext())
- {
- SqlParameter[] parameters =
- {
- new SqlParameter("@TableName", SqlDbType.VarChar),
- new SqlParameter("@Fields", SqlDbType.VarChar),
- new SqlParameter("@OrderField", SqlDbType.VarChar),
- new SqlParameter("@sqlWhere", SqlDbType.VarChar),
- new SqlParameter("@pageSize", SqlDbType.Int),
- new SqlParameter("@pageIndex", SqlDbType.Int),
- new SqlParameter("@TotalPage", SqlDbType.Int),
- new SqlParameter("@RecordCount", SqlDbType.Int)
- };
- parameters[0].Value = strTable;
- parameters[1].Value = strField;
- parameters[2].Value = strSortField;
- parameters[3].Value = strWhere;
- parameters[4].Value = pageSize;
- parameters[5].Value = pageIndex;
- parameters[6].Direction = ParameterDirection.Output;
- parameters[7].Direction = ParameterDirection.Output;
- var data = db.Database.SqlQuery<Entity>("exec SP_Procedure_PageGX @TableName,@Fields,@OrderField,@sqlWhere,@pageSize,@pageIndex,@TotalPage output,@RecordCount output", parameters).ToList();
- int count = data.Count;
- //
- string Pagecount = parameters[6].Value.ToString();
- string Rcount = parameters[7].Value.ToString();
- //
- PageCount = !string.IsNullOrEmpty(Pagecount) ? int.Parse(Pagecount) : 0;
- RecordCount = !string.IsNullOrEmpty(Rcount) ? int.Parse(Rcount) : 0;
- return data;
- }
- }
- }
5、相关Model实体类
- public class TRA_BargainOrder_Test
- {
- public int ischeck
- {
- get; set;
- }
- public long TRA_BargainOrder_TestID
- {
- get; set;
- }
- /// <summary>
- /// 订单编号
- /// </summary>
- public string BargainOrderCode
- {
- get; set;
- }
- /// <summary>
- /// 城市代号
- /// </summary>
- public string CityCode
- {
- get; set;
- }
- public string ParkUserId
- {
- get; set;
- }
- public int FlowStatus
- {
- get; set;
- }
- public DateTime UpdateTime
- {
- get; set;
- }
- public int OrderStatus
- {
- get; set;
- }
- public int PayStatus
- {
- get; set;
- }
- public DateTime CreateTime
- {
- get; set;
- }
- public string ExpressCode { get; set; }
- /// <summary>
- /// 用户ID
- /// </summary>
- public int UserID { get; set; }
- #region 涉及到用户信息表数据
- /// <summary>
- /// 用户名
- /// </summary>
- public string UserName
- {
- get; set;
- }
- /// <summary>
- /// 地址
- /// </summary>
- public string LocalAddress
- {
- get; set;
- }
- #endregion
- }
6、页面展示效果图 在这里说明下 通过单表或者多表 都可以实现数据分页效果
7、存储之第二种方式 参数性对少点 效果性能 也是不错 自行选择
- ALTER PROCEDURE [dbo].[SP_Procedure_PageGX]
- (
- @TableName varchar (5000), --要显示的表或多个表的连接
- @Fields varchar(3000)='*', --表中的字段,可以使用*代替
- @OrderField varchar(500), --要排序的字段
- @sqlWhere varchar(500)=NULL, --WHERE子句
- @pageSize int, --分页的大小
- @pageIndex int, --要显示的页的索引
- @TotalPage int output, --页的总数
- @RecordCount int output --总记录数
- )
- as
- begin
- Begin Tran
- Declare @sql nvarchar(4000);
- Declare @totalRecord int; --记录总数
- if (@sqlWhere IS NULL or @sqlWhere = '') set @sql = 'select @totalRecord = count(*) from ' + @TableName
- else
- set @sql = 'select @totalRecord = count(*) from ' + @TableName + ' where ' + @sqlWhere
- --执行sql语句得到记录总数
- EXEC sp_executesql @sql,N'@totalRecord int OUTPUT',@totalRecord OUTPUT
- select @TotalPage=CEILING((@totalRecord+0.0)/@PageSize)
- select @RecordCount=CEILING(@totalRecord)
- --根据特定的排序字段为为行分配唯一ROW_NUMBER的顺序
- if (@sqlWhere IS NULL or @sqlWhere = '')
- set @sql = 'select * from (select ROW_NUMBER() over(order by ' + @OrderField + ') as rowId,' + @Fields + ' from ' + @TableName
- else
- set @sql = 'select * from (select ROW_NUMBER() over(order by ' + @OrderField + ') as rowId,' + @Fields + ' from ' + @TableName + ' where ' + @SqlWhere
- --确保当前页的索引在合理的范围之内
- if @PageIndex<=0
- Set @pageIndex = 1
- if @pageIndex>@TotalPage
- Set @pageIndex = @TotalPage
- --得到当前页在整个结果集中准确的ROW_NUMBER值
- Declare @StartRecord int
- Declare @EndRecord int
- set @StartRecord = (@pageIndex-1)*@PageSize + 1
- set @EndRecord = @StartRecord + @pageSize - 1
- --输出当前页中的数据
- set @Sql = @Sql + ') as t' + ' where rowId between ' + Convert(varchar(50),@StartRecord) + ' and ' + Convert(varchar(50),@EndRecord)
- Exec(@Sql)
- If @@Error <> 0
- Begin
- RollBack Tran
- Return -1
- End
- Else
- Begin
- Commit Tran
- Return @totalRecord
- End
- End
执行测试:
- USE [test]
- GO
- DECLARE @return_value int,
- @TotalPage int,
- @RecordCount int
- EXEC @return_value = [dbo].[SP_Procedure_PageGX]
- @TableName = N'TRA_BargainOrder_Test A join UserInfo_test B ON A.UserID = B.Id',
- @Fields = N'*',
- @OrderField = N'CreateTime DESC',
- @sqlWhere = N'1=1',
- @pageSize = 10,
- @pageIndex = 8,
- @TotalPage = @TotalPage OUTPUT,
- @RecordCount = @RecordCount OUTPUT
- SELECT @TotalPage as N'@TotalPage',
- @RecordCount as N'@RecordCount'
- SELECT 'Return Value' = @return_value
- GO
8、view层代码
- GxFy_PageList3
- <link href="~/Content/bootstrap.css" rel="stylesheet" />
- <link href="~/Content/PagedList.css" rel="stylesheet" />
- @model PagedList.StaticPagedList<EFAutofacMVC.Models.TRA_BargainOrder_Test>
- @using PagedList.Mvc
- @using PagedList
- @using (Html.BeginForm("Index", "Home", FormMethod.Get))
- {
- <div class="well">
- <table class="table">
- @* <thead>
- <tr>
- <th>
- <input id="UserName" name="UserName" type="text" placeholder="请输入用户名" />
- </th>
- <th>
- <input id="OrderNum" name="OrderNum" type="text" placeholder="请输入订单号" />
- </th>
- <th>
- <input id="Submit1" type="submit" value="submit" />
- </th>
- </tr>
- </thead>*@
- <tr>
- <th>用户名</th>
- <th>地址</th>
- <th>订单编号</th>
- <th>城市代号</th>
- <th>时间</th>
- <th>订单状态</th>
- </tr>
- <tbody>
- @* @foreach (var item in ViewBag.List) *@
- @*用model展示数据*@
- @foreach (var item in Model)
- {
- <tr>
- <td>@item.UserName </td>
- <td>@item.LocalAddress </td>
- <td>@item.BargainOrderCode </td>
- <td>@item.CityCode </td>
- <td>@item.UpdateTime </td>
- <td>@item.OrderStatus </td>
- </tr>
- }
- </tbody>
- <tfoot>
- <tr>
- <td colspan="5">
- <div class="">
- @if (Model != null)
- {
- <span style="height: 20px; line-height: 20px;">共 @Model.TotalItemCount.ToString() 条记录,当前第 @Model.PageNumber 页/共 @Model.PageCount 页 </span>
- @Html.PagedListPager(Model, pageindex => Url.Action("GxFy_PageList3", new { pageindex }), new PagedListRenderOptions() { LinkToFirstPageFormat = "首页", LinkToNextPageFormat = "下一页", LinkToPreviousPageFormat = "上一页", LinkToLastPageFormat = "末页", DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 3 })
- }
- </div>
- </td>
- </tr>
- </tfoot>
- </table>
- </div>
- }
9、控制器代码
- /// <summary>
- /// 第三种
- /// </summary>
- /// <param name="orderNO"></param>
- /// <param name="pageindex"></param>
- /// <param name="pageSize"></param>
- /// <returns></returns>
- public ActionResult GxFy_PageList3(string orderNO, int pageindex = , int pageSize = )
- {
- orderNO = "";
- #region 分页
- int RecordCount = ;
- int pageCount = ;
- string strField = "*";
- string strSortField = "CreateTime desc";
- //string strTable = "TRA_BargainOrder_Test";//单表
- string strTable = "TRA_BargainOrder_Test A join UserInfo_test B ON A.UserID = B.Id";// 多表联合查询
- string strWhere = "1=1";
- int UsedTime = ;
- #endregion
- #region 参数处理
- //if (!string.IsNullOrEmpty(orderNO))
- // {
- // pageinationInfo.strWhere += " and BargainOrderCode like '%" + orderNO.Trim() + "%'";
- // }
- //if (!string.IsNullOrEmpty(orderNO))
- //{
- // strWhere += "and BargainOrderCode =" + orderNO.Trim() + "";
- //}
- #endregion
- PageinationInfoService Service = new PageinationInfoService();
- IList<TRA_BargainOrder_Test> List = Service.Get_PageinationInfo_List<TRA_BargainOrder_Test>(strTable, strField, strSortField, strWhere, pageSize, pageindex, out pageCount, out RecordCount);
- #region 传值
- //pageNumber,pageSize 我们已经传递到View,可以通过相关插件展现分页效果 在这里进行pagedlist分页
- //pagedList还提供了另外一种方法:StaticPagedList 方法
- //StaticPagedList 方法需要提供四个参数,分别为:数据源 当前页码 每页条数 以及总记录数
- var PageList = new StaticPagedList<TRA_BargainOrder_Test>(List, pageindex, , RecordCount);
- #region 页面用 ViewBag.List 显示列表信息时可以使用一下方式
- //页面用 ViewBag.List 显示列表信息时可以使用一下方式
- //// ViewBag.List = List;
- //ViewBag.List = PageList;
- //ViewBag.pageNumber = pageindex;
- //ViewBag.pageSize = pageSize;
- //ViewBag.RecordCount = RecordCount;
- //ViewBag.BargainOrderCode = orderNO;
- //return View();
- #endregion
- #region 页面用PagedList.StaticPagedList medel 实体展示分页数据
- return View(PageList);
- #endregion
- #endregion
- }
10、封装层存储调用类中方法 Get_PageinationInfo_List 即可 效果展示 如同上
MVC+EF+PagedList+调用通用存储封装+多表联合信息展示分页+存储过程分页的更多相关文章
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
- MVC EF 修改 封装类 通用泛型方法(一)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- MVC EF 修改 封装类 通用泛型方法(二)
修改 这个 方法 如下. 排除 null 值. /// <summary> /// 修改 多数 数据, 个别数据除外, proNames 不写 则是 修改全部 /// </summa ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也 ...
- Delphi调用SQL分页存储过程实例
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2) ...
- .NET MVC+ EF+通用存储过程实现增删改功能以及使用事物处理
引摘: 1.EF对事务进行了封装:无论何时执行任何涉及Create,Update或Delete的查询,都会默认创建事务.当DbContext类上的SaveChanges()方法被调用时,事务就会提交, ...
随机推荐
- Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)
转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平 ...
- weblogic安装错误BEA-090870解决方案
00.问题描述 <Sep 3, 2017 3:29:09 PM CST> <Error> <Security> <BEA-090870> <The ...
- 使用u盘安装os x系统
从 App Store 下载 OS X 安装器 请执行以下步骤下载要安装的 OS X 版本. 1. 从 Apple 菜单中,选取“App Store”. 2. 按住 Option 键并点按“已购项目” ...
- df看到的文件系统容量跟parted看到的分区容量差别较大的解决方法
下午同事在自己的开发机上遇到题目说到的问题,它看到挂在到/dev/sda磁盘分区5上的ext4文件系统的容量显著小于该分区的大小 df看到的文件系统容量: #df -h /dev/sda5 Files ...
- 【DeepLearning】Exercise:Sparse Autoencoder
Exercise:Sparse Autoencoder 习题的链接:Exercise:Sparse Autoencoder 注意点: 1.训练样本像素值需要归一化. 因为输出层的激活函数是logist ...
- 基于TILE-GX实现快速数据包处理框架-netlib实现分析【转】
最近在研究suricata源码,在匹配模式的时候,有tilegx mpipe mode,转载下文,了解一下. 原文地址:http://blog.csdn.net/lhl_blog/article/de ...
- Ubuntu终端命令行播放音乐(mp3)
有很多在终端命令行播放mp3的工具,有的甚至可以生成播放列表.也只有命令行重度使用者有这个需求,下面我们来看一看这些工具. Sox Sox(Sound eXchange)是操作声音文件的瑞士军刀,它可 ...
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...
- iOS 一个小动画效果-b
近期工作不忙,来一个需求感觉棒棒的,是一个比较简单的页面,如下图(图1) 图1 应该很简单吧,没什么大的功能,就是一个展示,一个拨打电话,拨打电话不需要说,几行代码搞定,基本UI也不用说了,刚培训完的 ...
- JS遍历Table的所有单元格内容
用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现: 这个方法的参数是唯一标识Table的id,用document对象的获取. function GetInfoFromTable(ta ...