Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
来源:互联网 发布:知画生孩子第29集 编辑:程序博客网 时间:2024/05/20 05:11
(1) 我的例子是,(Tb_Mnager)管理员表与(Tb_Role)角色表联查,返回两个表部分字段的组合
如下控制器代码:
- public ActionResult List(int? pager)
- {
- pager = pager ?? 1;
- int pageSize =20;
- MyMvcCmsEntities db = new MyMvcCmsEntities();
-
-
- var rs = (from m in db.Tb_Manager
- join r in db.Tb_Role on m.roleId equals r.id orderby m.sequeNum descending
- select new
- {
- m.id,
-
- status = m.isDisable == 1 ? "<font color='red'>禁用</font>" : "<font color='green'>正常</font>",
- m.loginName,
- m.sequeNum,
- m.date,
-
- r.roleName
- });
-
- ViewBag.allCount = rs.Count();
-
- ViewBag.list = rs.ToPagedList((int)pager, pageSize);
- return View();
- }
(2) 好了,结果返回了,那么前台如何遍历遍历List<Object>的值呢?
答案:反射 详情 C#反射的简单应用
此处,我用反射原理,写了一个帮助类:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace Mvc.Util
- {
- public class Reflection
- {
-
-
-
-
-
-
-
- public static Object GetPropertyValueByName(string PropertyName, Object o)
- {
- if (o == null)
- {
- o = new { };
- }
-
- Object returnObject = new Object();
- PropertyInfo[] p1 = o.GetType().GetProperties();
- foreach (PropertyInfo pi in p1)
- {
- if (pi.Name.ToLower() == PropertyName.ToLower())
- {
- returnObject = pi.GetValue(o);
- }
- }
- return returnObject;
- }
-
- }
- }
(3) 这就好办了,那么我们在视图View中遍历并读取值就简单多了:- @{int index = 0;}
- @foreach (Object t in ViewBag.list)
- {
- index++;
- <tr>
- <td align="center"><span class="checkall" style="vertical-align:middle;"><input class="list-box" value="@Reflection.GetPropertyValueByName("id", t).ToString()" type="checkbox" /></span></td>
- <td>@index</td>
- <td>@Reflection.GetPropertyValueByName("loginName", t).ToString()</td>
- <td>
- @Reflection.GetPropertyValueByName("roleName", t).ToString()
- </td>
- <td>@Reflection.GetPropertyValueByName("date", t).ToString()</td>
- <td>
- @Html.Raw(Reflection.GetPropertyValueByName("status", t).ToString())
- </td>
- <td>
- <input type="text" value="@Reflection.GetPropertyValueByName("sequeNum", t).ToString()" class="sort" />
- </td>
- <td align="center"><a href='@Url.Action("edit", "manager", new { area="cms",id=Reflection.GetPropertyValueByName("id", t).ToString()})'>修改</a></td>
- </tr>
- }
视图中分页代码,注意Html.Pager扩展方法第一个参数的类型为IPagedList:
- @Html.Pager((IPagedList)ViewBag.list, new PagerOptions { PageIndexParameterName = "pager", ShowPageIndexBox = false, PageIndexBoxType = PageIndexBoxType.TextBox, ShowGoButton = false, FirstPageText = "首页", LastPageText = "尾页", ShowFirstLast = true, CurrentPagerItemWrapperFormatString = "<span class=\"current\">{0}</span>", CssClass = "default" }, new { @style = "width:100%;float=left;" })
0 0
- Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
- Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
- Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
- symfony2中FormType字段在new和edit表单中展示不同的字段
- linq查询多个字段
- MvcPager分页控件的使用
- 前台分页展示
- 分页前台展示备忘
- Select ...... 在select 字段列中 不能加括号
- 解决group by出来的字段既需要有作为列字段的又需要有作为行字段的报表问题
- 自定义字段的妙用
- 自定义字段的调用
- VA05N的自定义字段
- VA05N的自定义字段
- VA05N的自定义字段
- easyui-datagrid关于展示的字段需要进行数据类型转换的问题(自己记录备忘)
- Linq 修改表中单个字段的值及多个字段的值
- 后台管理前台要显示的字段
- iOS: 关于CALayer的contentsCenter属性
- Linux中的通配符
- VMware中右下角找不到优盘图标
- ProGuard
- Python Socket 编程——聊天室示例程序
- Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
- 使用消息队列的 10 个理由
- Linux常用命令速查手册
- 自动换行后进行缩进
- printf中输出double的占位符
- UIKeyboardWillShowNotification 真机中,在键盘为中文键盘时,会调用多次
- ORA-12154: TNS: 无法解析指定的连接标识符
- <c:forEach varStatus="status">中 varStatus的属性简介
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期