【问题标题】:WebGrid data displayed inside first columnWebGrid 数据显示在第一列内
【发布时间】:2013-06-26 21:14:41
【问题描述】:

在我的ASP.NET MVC 应用程序中,我有一个呈现表格的局部视图。

简而言之,我的问题是,WebGrid 的数据源中每个对象的所有属性的所有值都显示在表格的第一列中,而不是每列的属性值。我可以在托管它们的每个第一列单元格中看到每个属性的单元格边界。

局部视图的模型是List<ReportTableEntry>,其中ReportTableEntry 是:

public class ReportTableEntry
{
    public DateTime Time             { get; set; }
    public int      OpenedSessions   { get; set; }
    public int      ClosedSessions   { get; set; }
    public int      SnapshotSessions { get; set; }
    public int      TotalSessions    { get; set; }
}

渲染局部视图调用的视图

@Html.Partial("Table", Model.TableEntries)

(这里Model指的是父视图的模型而不是局部视图的模型),其中Model.TableEntries一个List,而在局部视图中,Model的内容似乎是有效的我检查它。

我已经尝试了所有我能想到的组合:

  • 我直接使用了父视图的模型,并使用源:Model.TableEntries 创建了 WebGrid。
  • 我尝试在局部视图中使用非类型化模型。
  • 我指定了网格的列名,并使用了默认值。
  • 我尝试使用 ColumnAttribute 装饰 ReportTableEntry 的属性。
  • 我使用 grid.Html 有和没有样式,有和没有列参数
  • 我切换了分页、排序并添加/删除了 ajaxUpdateContainerId

尽管如此,所有 ReportTableEntry 的属性值都塞在了第一列。

我注意到的一件事是 grid.Columns() 返回一个空数组。

为了完整起见,这里是产生这些不良结果的最简单的变体:

@model List<ReportTableEntry>

<div id="reportDataDiv">
@{
    if (Model == null)
    {
        <p>No data to show</p>
    }
    else
    {
        var grid = new WebGrid(source:                Model, 
                               columnNames:           null, 
                               defaultSort:           "", 
                               rowsPerPage:           100, 
                               canPage:               true, 
                               canSort:               false, 
                               ajaxUpdateContainerId: "reportDataDiv");

        @grid.GetHtml()
    }
}
</div>

我在这里错过了什么?

【问题讨论】:

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


    【解决方案1】:

    多么愚蠢... site.css,td 元素,浮动:左 - 这就是发生的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2012-09-14
      • 2020-06-17
      • 2019-01-11
      相关资源
      最近更新 更多