Resize Columns
Smart.Grid allows you to customize which columns can have their resizing enabled.
To enable resizing set the column's AllowResize
property to true:
@inject WeatherForecastService ForecastService <Grid DataSource="@forecast" > <Columns> <Column DataField="Date" Label="Date" AllowResize="true"> </Column> <Column DataField="TemperatureC" Label="Temp. (C)" AllowResize="true"> </Column> <Column DataField="TemperatureF" Label="Temp. (F)" AllowResize="true"> </Column> <Column DataField="Summary" Label="Summary" AllowResize="true"> </Column> </Columns> </Grid> @code{ private WeatherForecast[] forecast; protected override async Task OnInitializedAsync() { forecast = await ForecastService.GetForecastAsync(DateTime.Now); } }
Then you need to select the ResizeMode of the Grid using the GridBehavior object.
The ColumnResizeMode
can be set to either Split or GrowAndShrink
<Grid DataSource="@forecast" Behavior="gridBehavior"> .... </Grid> @code{ GridBehavior gridBehavior = new GridBehavior(){ ColumnResizeMode = GridResizeMode.Split }; .... }
When GridResizeMode
is set to Split, the expanding column will take up space from the next sibling
column:
When GridResizeMode
is set to GrowAndShrink, the expanding column will take up space by shrinking
all of the subsequent columns:
Column Width
Using the column's Width
and MinWidth
properties, you can set the size of the Column.
When resizing, the column will not shrink below the value set in MinWidth
<Grid DataSource="@forecast" Behavior="gridBehavior"> <Columns> <Column DataField="Date" Label="Date" AllowResize="true" MinWidth="150" Width="300"> </Column> <Column DataField="TemperatureC" Label="Temp. (C)" AllowResize="true" MinWidth="80"> </Column> <Column DataField="TemperatureF" Label="Temp. (F)" AllowResize="true" MinWidth="80"> </Column> <Column DataField="Summary" Label="Summary" AllowResize="true" MinWidth="100"> </Column> </Columns> </Grid>