【问题标题】:How to render webgrid at third column and without headers如何在第三列且没有标题的情况下呈现 webgrid
【发布时间】:2016-10-12 10:42:33
【问题描述】:

ASP.NET MVC4 Razor 应用程序页面包含表格。 表前两列具有固定名称。其他列具有从数据透视表动态创建的变量名称。

下面的代码呈现所有列并使用属性名称创建表头。

如何从第三列开始重新生成表格,以便不显示前两列? 如何呈现没有列标题的表格?

查看:

@inherits ViewBase<ViewModels.CustomerCardViewModel>

@{
var gd = new WebGrid(source: Model.Rows.Skip(1), canPage: false, canSort: false, rowsPerPage: 1000);
}

<!DOCTYPE HTML>
<html>
... head skipped
<body>
        @gd.GetHtml()
    </div>
    <hr />
</body>
</html>

视图模型:

    public class CustomerCardViewModel : ViewModelBase
    {
        public IEnumerable<dynamic> Rows { get; set; }
...
}

使用了 ASP.NET MVC4、Razor、Bootstrap 3、jquery。

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-4 razor webgrid


    【解决方案1】:

    1.渲染一个没有列标题的表格:

       @gd.GetHtml(
            displayHeader:false
        )
    

    2.隐藏列 - 如果你有一个静态的列列表,你可以使用How to hide a column in the Webgrid in aspasp.net MVC?,但如果它是动态的,那么只需使用 jQuery 编写一个小函数来隐藏所需的列:

    $('.table tr').each(function () {
        var tr = $(this);
        var children = tr.children();
        $(children[0]).hide();
        $(children[1]).hide();
    });
    

    【讨论】:

    • 前两列具有固定的属性名称。其他属性名称及其数量会有所不同。我试过$('td:nth-child(1),th:nth-child(2)').hide(),但仍然显示列。如何隐藏它们?也许没有前两列的新集合可以从 IEnumerable 中删除,或者可以删除前两列,或者可以动态创建 webgrid 列列表而不绑定到前两列?
    猜你喜欢
    • 2019-06-22
    • 2013-06-21
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多