ASP.NET MVC TileLayout Overview

Telerik UI for ASP.NET MVC Ninja image

The TileLayout is part of Telerik UI for ASP.NET MVC, a professional grade UI library with 110+ components for building modern and feature-rich applications. To try it out sign up for a free 30-day trial.

The Telerik UI TileLayout HtmlHelper for ASP.NET MVC is a server-side wrapper for the Kendo UI TileLayout widget.

The TileLayout widget allows you configure a two-dimensional grid-based sandbox surface to display content in tiles which can be dragged around and rearranged to create any modern page design.

It is based on the CSS Grid(with all its features) which covers the majority of cases and uses additional JavaScript logic to provide resizing, reordering and templates customizations.

Initializing the Tile Layout

To initialize the Tile Layout, specify the number of Columns() at root level and use the RowSpan() and ColSpan() of the containers to position the content in the available grid space.

The example below will render a grid with two columns which can be resized both vertically and horizontally.

    @(Html.Kendo().TileLayout()
        .Name("tilelayout")
        .Columns(2)
        .RowsHeight("285px")
        .ColumnsWidth("285px")
        .Containers(c => {
            c.Add().Header(h => h.Text("Header One")).BodyTemplate("Body Text One").ColSpan(1).RowSpan(1);
            c.Add().Header(h => h.Text("Header Two")).BodyTemplate("Body Text Two").ColSpan(1).RowSpan(1);
            c.Add().Header(h => h.Text("Header Three")).BodyTemplate("Body Text Three").ColSpan(2).RowSpan(1);
        })
        .Reorderable(true)
        .Resizable(true)
    )

Grid Layout Configuration

The Telerik UI TileLayout for ASP.NET MVC available grid space is defined by using the Columns() method. The number of rows in which the tiles will be displayed will automatically adjust. The columns and rows have a default width of 1fr which can be modified by using the ColumnsWidth() and RowsHeight() methods.

The RowsHeight() and ColumnsWidth() methods parameter value sets the maximum height/width the rows or columns of the widget will stretch to. Dependent on resizing, content and user interactions with the layout, they may be less than the set value.

Tile Layout configuration

Each tile can span across several rows and columns. The space that the tile takes up is determined by its container RowSpan() and ColSpan(). For more information about the containers and their configurable properties, see the containers article.

Gaps

The grid lines between the rows and columns can be configured by specifying the Gap.Columns for the vertical space between the tiles and the Gap.Rows for the horizontal spacing.

    .Gap(g=>g.Columns(10).Rows(10))

These properties are also known as the gutters between the rows/columns.

Referencing Existing Instances

To get a reference to an existing TileLayout instance:

  1. Use the jQuery.data() method.
  2. Once a reference is established, use the TileLayout API to control its behavior.

    var tilelayout = $("#tilelayout").data("kendoTileLayout");
    

Functionality and Features

Known Limitations

Currently, the component is not supported in Internet Explorer as the browser does not support gutters.

See Also

In this article