Your search did not match any results.

Columns Adaptability

The Form component can use different layouts depending on the screen width. Click one of the buttons on the right from the demo title to switch between horizontal and vertical orientations. You can determine the number of columns in the Form in one of the following ways:

Calculate the Number of Columns Automatically

To automatically calculate the number of columns based on the screen width, follow these steps:

  1. Assign "auto" to the colCount property to make the number of columns adapt to any screen size.

  2. Use the minColWidth property to specify the minimum column width.

In this demo, the number of columns is calculated automatically when the check box under the Form is clear.

Predefine the Number of Columns for Each Screen Size

In this case, screen sizes are classified into one of the following categories called "size qualifiers": extra small, small, medium, or large. You specify the number of columns for each size qualifier. Follow the steps below to configure this behavior:

  1. Use the screenByWidth function to map screen widths to size qualifiers. This demo classifies screens narrower than 720 pixels as small and treats all other screens as medium.

  2. Specify the colCountByScreen property to define how many columns the Form should contain depending on the available screen qualifiers.

In this demo, mark the check box under the Form to enable this configuration.

Backend API
@(Html.DevExtreme().Form() .ID("form") .LabelLocation(FormLabelLocation.Top) .MinColWidth(233) .ColCount(Mode.Auto) .ColCountByScreen(c => c.Md(4).Sm(2)) .ScreenByWidth("screenByWidth") .CustomizeItem("form_customizeItem") .FormData(Model) ) <div class="options"> <div class="caption">Options</div> <div class="option"> @(Html.DevExtreme().CheckBox() .Text("Calculate the number of columns automatically") .Value(false) .OnValueChanged("ckeckBox_valueChanged") ) </div> </div> <script> function getFormInstance() { return $("#form").dxForm("instance"); } function screenByWidth(width) { return width < 720 ? "sm" : "md"; } function ckeckBox_valueChanged(e) { var form = getFormInstance(); if(e.value) { form.option("colCountByScreen.sm", undefined); form.option("colCountByScreen.md", undefined); } else { form.option("colCountByScreen.sm", 2); form.option("colCountByScreen.md", 4); } } function form_customizeItem(item) { if(item.dataField == "Notes") item.visible = false; } </script>
using DevExtreme.AspNet.Data; using DevExtreme.AspNet.Mvc; using DevExtreme.NETCore.Demos.Models.SampleData; using DevExtreme.NETCore.Demos.ViewModels; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace DevExtreme.NETCore.Demos.Controllers { public class FormController : Controller { public ActionResult ColumnsAdaptability() { return View(new FormViewModel { ID = 1, FirstName = "John", LastName = "Heart", CompanyName = "Super Mart of the West", Position = "CEO", OfficeNo = "901", BirthDate = new DateTime(1964, 3, 16), HireDate = new DateTime(1995, 1, 15), Address = "351 S Hill St.", City = "Los Angeles", State = "CA", Zipcode = "90013", Phone = "+1(213) 555-9392", Email = "jheart@dx-email.com", Skype = "jheart_DX_skype" }); } } }
#form { padding: 10px 10px 110px; } .options { padding: 20px; background-color: rgba(191, 191, 191, 0.15); left: 0; position: absolute; bottom: 0; right: 0; } .caption { font-size: 18px; font-weight: 500; } .option { margin-top: 10px; }