【问题标题】:WebGrid Alignment in MVC3 with RAZORMVC3 中的 WebGrid 对齐与 RAZOR
【发布时间】:2012-05-01 00:16:25
【问题描述】:

我想在 MVC 3 的 WEBGRID 中的所有列中设置不同的宽度和对齐方式。这意味着在上面的代码中我现在有 5 列我想为所有标题设置不同的对齐方式和宽度。

下面是我的代码:

@{WebGrid grid = new WebGrid();
  if (@Model.VendorItemsList != null)
  {
      grid = new WebGrid(source: @Model.VendorItemsList, ajaxUpdateContainerId:         "gridSearch", canSort: true, rowsPerPage: Model.PageSize);
  }
}
<div id="gridSearch" class="tableGrid">
    @{            
        @grid.GetHtml(
            mode: WebGridPagerModes.All,
            columns: grid.Columns(
            grid.Column("VendorItemName", header: @GeneralResource.Vendor + " " + @GeneralResource.Item + " " + @GeneralResource.Name),
            grid.Column("ItemName", header: @GeneralResource.Item),
            grid.Column("ItemCategoryName", header: @GeneralResource.Category),
            grid.Column("VendorName", header: @GeneralResource.Vendor)
            ))
        }
    }
</div>

【问题讨论】:

    标签: css asp.net-mvc-3 webgrid razor-grid


    【解决方案1】:

    由于没有内置方法来控制宽度,因此您必须使用 CSS 样式。首先给标题和正文行赋予类:

    @grid.GetHtml(
        headerStyle: "header_row", 
        rowStyle: "item_row"
        // ...
    )
    

    然后使用 nth-child 伪类选择器设置它们的样式,例如:

    tr.header_row th:nth-child(1) { width: 100px; }
    tr.header_row th:nth-child(2) { width: 75px; }
    tr.header_row th:nth-child(3) { width: 50px; }
    
    tr.item_row td:nth-child(1) { width: 100px; }
    tr.item_row td:nth-child(2) { width: 75px; }
    tr.item_row td:nth-child(3) { width: 50px; }
    

    【讨论】:

    • 谢谢它对我很有帮助。
    • @dbasemen 这非常适合设置单元格的边界。虽然无法让它为宽度工作。
    • 宽度设置对列有效,但受 webgrid 宽度和浏览器窗口大小的影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多