DataGridColumn EditTemplate disable based on role

Hi there,

I would like to disable editing of a column based on a role, I wonder if there is an example of this? Let's say I want to enable editing ProductCode only for admins.

Thanks in advance.

<RadzenDataGrid @ref="gridDetail" AllowFiltering="true" AllowPaging="true" PageSize="5" AllowSorting="true" Data="@(SelectedOrders.FirstOrDefault()?.OrderDetails)" 
                        TItem="OrderDetail" EditMode="DataGridEditMode.Multiple" RowUpdate="@OnUpdateRowDetail" RowCreate="@OnCreateRowDetail" RowRender="@RowRenderDetail">
                            <Columns>
                                <RadzenDataGridColumn TItem="OrderDetail" Property="Id" Title="Product Number" />
                                <RadzenDataGridColumn TItem="OrderDetail" Property="ProductCode" Title="Code">
                                    <EditTemplate Context="orderDetail">
                                        <RadzenTextBox @bind-Value="orderDetail.ProductCode" Style="width:100%; display: block" Name="ProductCode" />
                                        <RadzenRequiredValidator Text="Product Code is required" Component="ProductCode" Popup="true" Style="position:absolute"/>
                                    </EditTemplate>
                                </RadzenDataGridColumn>
                                <RadzenDataGridColumn TItem="OrderDetail" Property="ProductName" Title="Name">
                                    <EditTemplate Context="orderDetail">
                                        <RadzenTextBox @bind-Value="orderDetail.ProductName" Style="width:100%; display: block" Name="ProductName" />
                                        <RadzenRequiredValidator Text="Product Name is required" Component="ProductName" Popup="true" Style="position:absolute"/>
                                    </EditTemplate>
                                </RadzenDataGridColumn>
                                <RadzenDataGridColumn TItem="OrderDetail" Property="UnitCost" Title="Unit Cost">
                                    <Template Context="detail">
                                        @String.Format(new System.Globalization.CultureInfo("en-US"), "{0:C}",detail.UnitCost)
                                    </Template>
                                    @*<EditTemplate Context="orderDetail">
                                        <RadzenNumeric ShowUpDown="false" TValue="double?" @bind-Value="orderDetail.UnitCost" Class="w-100" />
                                        @*<RadzenTextBox @bind-Value="orderDetail.UnitCost" Style="width:100%; display: block" Name="UnitCost" />
                                        <RadzenRequiredValidator Text="Unit Cost is required" Component="UnitCost" Popup="true" Style="position:absolute"/>
                                    </EditTemplate>*@
                                </RadzenDataGridColumn>
                                <RadzenDataGridColumn TItem="OrderDetail" Property="BuyQuantity" Title="Buy Qty" />
                                <RadzenDataGridColumn TItem="OrderDetail" Property="SellQuantity" Title="Sell Qty" />
                                <RadzenDataGridColumn TItem="OrderDetail" Property="ShippingNumber" Title="Shipment"/>
                                <RadzenDataGridColumn TItem="OrderDetail" Context="orderDetail" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="120px">
                                    <Template Context="detail">
                                        <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Primary" Class="m-1" Click="@(args => EditRowDetail(detail))" @onclick:stopPropagation="true">
                                        </RadzenButton>
                                    </Template>
                                    <EditTemplate Context="detail">
                                        <RadzenButton Icon="check" ButtonStyle="ButtonStyle.Primary" Class="m-1" Click="@((args) => SaveRowDetail(detail))">
                                        </RadzenButton>
                                        <RadzenButton Icon="close" ButtonStyle="ButtonStyle.Light" Class="m-1" Click="@((args) => CancelEditDetail(detail))">
                                        </RadzenButton>
                                    </EditTemplate>
                                </RadzenDataGridColumn>
                            </Columns>
                        </RadzenDataGrid>
2 Likes