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

asp.net-mvc – 如何在MVC WebGrid中显示行号

发布时间:2020-12-16 00:14:14 所属栏目:asp.Net 来源:网络整理
导读:我想在MVC WebGrid中有一个列作为行号.我该怎么做? 解决方法 您可以使用包含指示行号的属性的视图模型. 假设您有以下域模型: public class DomainModel{ public string Foo { get; set; }} 现在,您构建一个与视图要求相对应的视图模型: public class MyVi
我想在MVC WebGrid中有一个列作为行号.我该怎么做?

解决方法

您可以使用包含指示行号的属性的视图模型.

假设您有以下域模型:

public class DomainModel
{
    public string Foo { get; set; }
}

现在,您构建一个与视图要求相对应的视图模型:

public class MyViewModel
{
    public int RowNumber { get; set; }
    public string Foo { get; set; }
}

接着:

public ActionResult Index()
{
    // fetch the domain model from somewhere
    var domain = Enumerable.Range(1,5).Select(x => new DomainModel
    {
        Foo = "foo " + x
    });

    // now build the view model
    // TODO: use AutoMapper to perform this mapping
    var model = domain.Select((element,index) => new MyViewModel
    {
        RowNumber = index + 1,Foo = element.Foo
    });

    return View(model);
}

现在,您的视图将成为视图模型的强类型:

@model IEnumerable<MyViewModel>

@{
    var grid = new WebGrid(Model);
}

@grid.GetHtml(
    columns: grid.Columns(
        grid.Column("RowNumber"),grid.Column("Foo")
    )
)

现在让我们假设你出于某些愚蠢的原因不想使用视图模型.在这种情况下,如果您愿意,可以将视图转换为意大利面条代码:

@model IEnumerable<DomainModel>

@{
    var grid = new WebGrid(Model.Select((element,index) => new { element,index }));
}

@grid.GetHtml(
    columns: grid.Columns(
        grid.Column("RowNumber",format: item => item.index + 1),grid.Column("Foo",format: item => item.element.Foo)
    )
)

(编辑:李大同)

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

    推荐文章
      热点阅读