# Column Virtualization

The Grid provides a built-in option for virtualizing its columns. To enable it, set `Scrollable(scrollable => scrollable.Virtual(GridVirtualizationMode.Columns))`. As a result, the Grid renders only the currently visible columns and improves rendering performance. When users scroll horizontally, the visual subset of columns updates accordingly.

> important To use column virtualization correctly, set each column width through the `Width()` method.

To enable virtualized columns:

```Razor HtmlHelper
    @(Html.Kendo().Grid<OrderViewModel>()
        .Name("grid")
        .Scrollable(s=>s.Virtual(GridVirtualizationMode.Columns))
    )
```

To enable both virtualized columns and rows:

```Razor HtmlHelper
    @(Html.Kendo().Grid<OrderViewModel>()
        .Name("grid")
        .Scrollable(s=>s.Virtual(GridVirtualizationMode.RowsAndColumns))
    )

```

## See Also

* [Column Virtualization by the Grid (Demo)](https://demos.telerik.com/aspnet-mvc/grid/column-virtualization)
* [Virtual Scrolling of the Telerik UI for ASP.NET MVC Grid](https://www.telerik.com/aspnet-mvc/documentation/html-helpers/data-management/grid/scrolling/virtual)
* [Column Widths](https://www.telerik.com/aspnet-mvc/documentation/html-helpers/data-management/grid/columns/widths)
* [Grid Knowledge Base Articles](https://www.telerik.com/aspnet-mvc/documentation/knowledge-base)
* [Grid Server-Side API Reference](https://www.telerik.com/aspnet-mvc/documentation/api/grid)
