How to customize and make the contrib grid stylish
So far i have used this coding for view formy mvc contrib grid....here the when i bind grid it becomes too large it the last column is going outside of the page...pls say how to reduce the size and make the grid some how stylish.....
<%= Html.Grid<Product>(Model)
.Columns(column =>
{
column.For(c => c.ProductID);
colum开发者_StackOverflow社区n.For(c => c.ProductName);
column.For(c => c.SupplierID);
column.For(c => c.CategoryID);
column.For(c => c.QuantityPerUnit);
column.For(c => c.UnitPrice);
column.For(c => c.UnitsInStock);
column.For(c => c.UnitsOnOrder);
column.For(c => c.ReorderLevel);
column.For(c => c.Discontinued);
column.For(c => Html.ActionLink("Details", "Details", new { id = c.ProductID })).InsertAt(0).Encode(false);
column.For(c => Html.ActionLink("Edit", "Edit", new { id = c.ProductID })).InsertAt(1).Encode(false);
column.For(c => Html.ActionLink("Create", "Create", new { id = c.ProductID })).InsertAt(2).Encode(false);
column.For(c => Html.ActionLink("Delete", "Delete", new { id = c.ProductID })).InsertAt(3).Encode(false);
}
)
%>
Here's how I style my grids with alternatings rows and colors.
<%Html.Grid<UserSummaryModelDetails>(Model.Users)
.Columns(column =>
{
column.For(x => x.FullName).Named("Name").Attributes(x => new Dictionary<string, object> { { "valign", "top" } });
column.For(x => x.Division).Attributes(x => new Dictionary<string, object> { { "valign", "top" } });
})
.RowStart((p,row) => {
if (!row.IsAlternate) { %>
<tr class="gridrow_alternate">
<% } else { %>
<tr>
<% }
})
.HeaderRowAttributes(new Dictionary<string, object> { { "style", "height: 25px;" } })
.Empty("No users found")
.Attributes(@class => "table-list")
.Render();
%>
Style sheet:
.table-list
{
clear: both;
width: 800px;
height: 100%;
border: solid 1px #e8eef4;
border-collapse: collapse;
overflow: visible;
margin-top: 10px;
}
.table-list td
{
padding: 5px;
border: solid 1px #e8eef4;
overflow: visible;
}
.table-list tr
{
height: 95px;
overflow: visible;
}
.table-list th
{
padding: 6px 5px;
text-align: left;
background-color: #e8eef4;
border: solid 1px #e8eef4;
overflow: visible;
}
.table-list .gridrow_alternate
{
background-color: #eee;
}
You could define a width or a custom CSS class for each column. This way you can restrict its size:
column.For(c => c.ProductID)
.Attributes(gr => new Hash(@width => "15%"));
or a CSS class:
column.For(c => c.ProductID)
.Attributes(gr => new Hash(@class => "productId"));
You could also put the entire grid into a div with fixed width.
精彩评论