2012-04-19 67 views
1

我想在MVC 3中的WEBGRID的所有列中設置不同的寬度和對齊方式。這意味着在上面的代碼中我有5列現在我想設置不同的對齊方式和寬度所有的標題。在MVC3中使用RAZOR進行WebGrid對齊

下面是我的代碼:

@{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> 

回答

2

由於沒有內置的方式來控制寬度,你將不得不使用CSS樣式。首先給類的標題和正文行:

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

然後,使用第n個孩子僞類選擇他們的風格,例如:

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; } 
+0

感謝這對我來說是非常有幫助的。 – RKK 2012-04-20 04:42:08

+0

@dbasemen這對於設置單元格的邊界非常合適。儘管如此,還是無法讓它適用於寬度。 – Joe 2012-08-26 01:05:53

+0

寬度設置適用於列,但受Webgrid寬度和瀏覽器窗口大小的影響。 – Joe 2012-08-28 16:18:05