开发者

How to customize and make the contrib grid stylish

开发者 https://www.devze.com 2023-01-25 11:25 出处:网络
So far i have used this coding for view formymvc contrib grid....here the when i bindgrid it becomestoo large it the last column is going outside of the page...pls say how to reduce the size and make

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号