<SfGrid DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>()
{ "Add", "Delete", "Update", "Cancel" })" Height="315"> @if (CanEdit)
{ <GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Batch"></GridEditSettings>
} <GridColumns> <GridColumn Field=@nameof(Order.OrderID) HeaderText="Order
ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" ValidationRules="@(new ValidationRules {
Required = true })" Type="ColumnType.Number" Width="120"></GridColumn> <GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer
Name" ValidationRules="@(new ValidationRules{
Required=true})" Width="120"></GridColumn> <GridColumn Field=@nameof(Order.OrderDate) HeaderText="
Order Date" EditType="EditType.DatePickerEdit" Format="d" TextAlign="TextAlign.Right" Width="130" Type="ColumnType.Date"></GridColumn> <GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" AllowAdding="CanEditColumn" AllowEditing="CanEditColumn" TextAlign="TextAlign.Right" EditType="EditType.NumericEdit" Width="120"></GridColumn> <GridColumn Field=@nameof(Order.ShipCountry) HeaderText="Ship
Country" EditType="EditType.DropDownEdit" Width="150"></GridColumn> </GridColumns> </SfGrid> @code{ public List<Order> Orders { get; set; } public bool CanEdit { get; set;
} // to enable / disable editing in Grid public bool CanEditColumn { get; set; }
= false; //
to disable particular column protected override void OnInitialized() { CanEdit = (new bool[] { true, false })[new Random().Next(2)]; } |
You can find the UG documentation for reference.
Find the sample to disable editing for a column based on condition here.
|
[Index.razor] – For Normal editing
<SfGrid DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })" Height="315">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Normal"></GridEditSettings>
<GridEvents RowSelected="RowSelectHandler" TValue="Order"></GridEvents>
<GridColumns>
. ..
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" AllowEditing="@CanEditColumn" Format="C2" TextAlign="TextAlign.Right" EditType="EditType.NumericEdit" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.ShipCountry) HeaderText="Ship Country" EditType="EditType.DropDownEdit" Width="150"></GridColumn>
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
public bool CanEditColumn { get; set; } = true; // to enable / disable editing in Grid
. . .
public void RowSelectHandler(RowSelectEventArgs<Order> args)
{
if(args.Data.ShipCountry != "INDIA")
{
CanEditColumn = false; //disable editing for Freight column if ShipCountry column value is not INDIA
}
else
{
CanEditColumn = true; //enable editing for Freight column if ShipCountry column value is INDIA
}
}
} |
|
[Counter.razor]
<SfGrid DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Add", "Delete", "Update", "Cancel" })" Height="315">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Batch"></GridEditSettings>
<GridEvents OnCellEdit="CellEditHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" ValidationRules="@(new ValidationRules { Required = true })" Type="ColumnType.Number" Width="120"></GridColumn>
. . .
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
. . .
public void CellEditHandler(CellEditArgs<Order> args)
{
if (args.Data.ShipCountry != "INDIA")
{
args.Cancel = true; //cancel default edit action if ShipCountry value is not INDIA
}
}
} |
|
<SfGrid DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })" Height="315">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Normal"></GridEditSettings>
<GridEvents RowSelected="RowSelectHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" ValidationRules="@(new ValidationRules{ Required=true})" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" ValidationRules="@(new ValidationRules{ Required=true})" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.OrderDate) HeaderText=" Order Date" EditType="EditType.DatePickerEdit" Format="d" TextAlign="TextAlign.Right" Width="130" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" AllowAdding="false" AllowEditing="@CanEditColumn" Format="C2" TextAlign="TextAlign.Right" EditType="EditType.NumericEdit" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.ShipCountry) HeaderText="Ship Country" EditType="EditType.DropDownEdit" Width="150"></GridColumn>
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
public bool CanEditColumn { get; set; } = true; // to enable / disable editing in Grid
. . .
} |
|
|