asp.net-mvc-3 – 如何在WebGrid中隐藏列?
发布时间:2020-12-16 03:53:35 所属栏目:asp.Net 来源:网络整理
导读:我是MVC3的新手 – 我正在使用WebGrid在网站上显示我正在进行的拍卖的一些列.这会显示一个显示最新出价的网格.除管理员以外的任何人登录时,他们应该只看到出价金额和日期/时间.当管理员登录时,他们应该看到所有列(名称和联系信息).我想我可能不得不以某种方
我是MVC3的新手 – 我正在使用WebGrid在网站上显示我正在进行的拍卖的一些列.这会显示一个显示最新出价的网格.除管理员以外的任何人登录时,他们应该只看到出价金额和日期/时间.当管理员登录时,他们应该看到所有列(名称和联系信息).我想我可能不得不以某种方式在代码中按摩它,但我想知道是否有办法在Razor标记中处理它?这是我现在的:
@{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); } @grid.GetHtml( tableStyle: "grid",headerStyle: "head",alternatingRowStyle: "alt",columns: grid.Columns( grid.Column("BidAmount",format: @<text>$@item.BidAmount</text>),grid.Column("BidDateTime"),grid.Column("FirstName"),grid.Column("LastName"),grid.Column("Email"),grid.Column("PhoneNumber") ) ) 所以我想用伪代码做的事情是这样的: @{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); } @grid.GetHtml( tableStyle: "grid",columns: grid.Columns( grid.Column("BidAmount",@if(userIsAdmin){ grid.Column("FirstName"),grid.Column("PhoneNumber") ) } ) 可以这样做吗?如果没有,任何关于如何处理它的想法?我是否需要编写两个不同的WebGrid代码,并用if()可能包围它们? 解决方法
如果首先将第一个代码块中的列列表组成一个变量(cols):
@{ var grid = ...; IEnumerable<WebGridColumn> cols = grid.Columns(... the common columns ...); if (isAdmin) cols = cols.Concat(grid.Columns(... the admin columns ...); } 并将其传递给GetHtml()方法: @grid.GetHtml(... columns: cols); 我认为对于Concat方法,您需要像往常一样使用System.Linq的命名空间.或者,您可以使用List< WebGridColumns>并使用AddRange. 关键是GetHtml需要一个IEnumerable< WebGridColumn>对于columns参数. grid.Columns辅助方法只不过是一个带有params数组参数的方法,因此您可以一个接一个地“列出”这些列,但实际上这样就构成了一个params数组.但是,您可以使用C#中可以想象的任何有效方法来组成列的列表(IEnumerable),然后可以将其传递给GetHtml. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 回发时超过最大请求长度异常
- asp.net-web-api – 从Web API 2基于声明的身份验证迁移到T
- asp.net-mvc – mvc web应用程序应该是3层吗?
- ASP.NET C#Active Directory – 查看用户密码到期之前的时间
- ASP.Net 4.0可以设置为使用ASP.Net 2.0的根网站的子应用程序
- asp.net-mvc – 如何使用jquery处理JSON?
- asp.net – 异步操作方法和IO完成端口
- asp.net-mvc-3 – 在MVC3 Controller操作中返回文件和呈现的
- 详解 ASP.NET Core MVC 的设计模式
- asp.net-mvc-2 – 强大类型的ActionLink在Asp.Net MVC 2?
推荐文章
站长推荐
- asp.net-mvc – 如何在C#中为MVC创建值为“00”和
- asp.net – 在IIS中启用内容过期可能有什么缺点?
- asp.net-mvc – 如何在Visual Studio 2008和ASP.
- asp.net – 有没有办法将外部URL分配给HyperLink
- Jquery 组合form元素为json格式,asp.net反序列化
- asp.net C# config 自定义节点及自定义节点配置以
- asp.net-mvc – 将域映射到MVC区域
- asp.net – 如何使用EntityFramework种子数据代码
- ASP.net页面上的表单标签
- asp.net文件上载在加载页面时重置了与服务器的连
热点阅读