Hi,
I implemented a Radzen DataGrid with add and edit options with validations for few of the fields. Validation works fine on textboxes (1st and second column) but it isn't working for dropdown (3rd column). Below is my code, but just to brief on few things here, I have used bind-Value, and the Name and Component matches. But the list which is assigned to the datagrid itself is different from the list which I am binding to this dropdown, not sure if this would cause issues. Also since this field is int, I've changed it to nullable int and verified that it is infact null during debugging. Please let me know if any further code snippet is required.
PS: RadzenTemplateForm inside EditTemplate is something that I tried, but with or without that, issue is still the same.
<RadzenDataGrid @ref="grid" Data="@_myData" TItem="_myData"
RowCreate="@InsertRow" RowUpdate="@UpdateRow"
AllowPaging=true PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary=true
AllowColumnResize=true AllowSorting=true
AllowAlternatingRows=false EditMode="DataGridEditMode.Single" ColumnWidth="200px">
<HeaderTemplate>
<RadzenButton ButtonStyle="ButtonStyle.Success" Icon="add_circle" Text="Add New Row" Click="@InsertRow" Disabled="isEdit" />
</HeaderTemplate>
<Columns>
<RadzenDataGridColumn Property="Code" Title="Code" Width="150px" Frozen="true" FrozenPosition="FrozenColumnPosition.Left">
<EditTemplate Context="x">
<div style="display: flex; flex-direction: column; width: 100%;">
<RadzenTextBox @bind-Value="x.Code" Name="Code" Disabled="isEdit" />
<RadzenRequiredValidator Text="Code is required" Component="Code" Popup=false />
</div>
</EditTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Property="Name" Title="Name" Width="200px" Frozen="true" FrozenPosition="FrozenColumnPosition.Left">
<EditTemplate Context="x">
<div style="display: flex; flex-direction: column; width: 100%;">
<RadzenTextBox @bind-Value="x.Name" Name="Name" />
<RadzenRequiredValidator Text="Name is required" Component="Name" Popup=false />
</div>
</EditTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Property="ClassDetails.ClassName" Title="ClassName" Width="200px">
<EditTemplate Context="x">
<RadzenTemplateForm Data="@x">
<div style="display: flex; flex-direction: column; width: 100%;">
<RadzenDropDown @bind-Value="x.ClassID"
Data="@_filteredClasses"
Name="ClassID"
TextProperty="@nameof(ClassDetails.ClassName)"
ValueProperty="@nameof(ClassDetails.ClassID)"
Disabled="isEdit" />
<RadzenRequiredValidator Text="ClassName is required" Component="ClassID" Popup=false />
</div>
</RadzenTemplateForm>
</EditTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Context="x" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Width="100px" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
<Template Context="x">
<RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" class="rz-my-1 rz-ms-1" Click="@(() => Edit(x))" />
<RadzenButton Icon="delete" ButtonStyle="ButtonStyle.Danger" Variant="Variant.Flat" Size="ButtonSize.Medium" Shade="Shade.Lighter" class="rz-my-1 rz-ms-1" Click="(() => Delete(x))" />
</Template>
<EditTemplate Context="x">
<RadzenButton Icon="save" ButtonStyle="ButtonStyle.Success" Variant="Variant.Filled" Size="ButtonSize.Medium" aria-label="Save" Click="@(() => Save(x))" />
<RadzenButton Icon="close" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" class="rz-my-1 rz-ms-1" aria-label="Cancel" Click="@(() => Reset(x))" />
</EditTemplate>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
@code {
StudentModel _myData;
ClassDetails _classData;
}