加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?

发布时间:2020-12-15 23:00:04 所属栏目:asp.Net 来源:网络整理
导读:我有一个webgrid,有一个列我想要只有某些用户可见. 目前我已经编码了网格如下 if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator)){ @grid.GetHtml(columns: grid.Columns( grid.Column(format: (item) = Html.ActionL
我有一个webgrid,有一个列我想要只有某些用户可见.
目前我已经编码了网格如下
if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select","Details",new { contractId = item.ContractId })),grid.Column(format: (item) => Html.ActionLink("Edit","Edit",grid.Column("SignOffDate","Sign Off Date",format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),grid.Column("FullContractNumber","Contract Number"),grid.Column("ContractTitle","Title")
    ));
}
else
{ 
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select","Title")
    ));
}

但是肯定有一个更好的方法,不重复所有的代码?
2列输入之间的唯一区别是我想显示特定用户的编辑链接.那么最好的替代方法是什么呢?

解决方法

尝试这样(未经测试,目前无法访问VS):
@{
    var gridColumns = new List<WebGridColumn>();
    gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Select",new { contractId = item.ContractId })));
    if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
    {
        gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Edit",new { contractId = item.ContractId })));
    }
    gridColumns.Add(grid.Column("SignOffDate",format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>));
    gridColumns.Add(grid.Column("FullContractNumber","Contract Number"));
    gridColumns.Add(grid.Column("ContractTitle","Title"));
}

@grid.GetHtml(columns: grid.Columns(gridColumns.ToArray()));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读