Hi, I've a grid:
<
telerik:RadGrid
ID
=
"Grid"
runat
=
"server"
GridLines
=
"None"
AllowPaging
=
"True"
CssClass
=
"RadGrid"
AllowSorting
=
"True"
AutoGenerateColumns
=
"false"
ShowStatusBar
=
"true"
AllowFilteringByColumn
=
"true"
>
<
ValidationSettings
EnableValidation
=
"true"
EnableModelValidation
=
"true"
CommandsToValidate
=
"Insert,Edit,Update"
/>
<
MasterTableView
Width
=
"100%"
CommandItemDisplay
=
"Top"
DataKeyNames
=
"Id"
InsertItemPageIndexAction
=
"ShowItemOnCurrentPage"
>
And I am using EF as Datasource (with RepositoryPattern).
Furthermore I user Dataannotations - so every Entity has a partial MetadataClass with Annotations like:
[MetadataType(typeof(entityMetadata))]
public partial class entity
{
internal sealed class entityMetadata
{
[Required(ErrorMessage="Id is required")]
public Int32 Id { get; set; }
[Required(ErrorMessage="Name is required")]
[StringLength(400)]
public String Name { get; set; }
[Required(ErrorMessage="Description is required")]
public String Description { get; set; }
}
}
I thought with "EnableModelValidation" the Grid would automatically validate against this annotations.
But it doesn't.
My UpdateCommand looks like this:
void Grid_UpdateCommand(object sender, GridCommandEventArgs e)
{
using (IGenericRepository<Lov_KpiType> repositroy = new GenericRepository<Lov_KpiType>())
{
GridEditableItem item = e.Item as GridEditableItem;
int kpiType_Id = Convert.ToInt32(item.GetDataKeyValue("Id").ToString());
Lov_KpiType kpiType = repositroy.FindById(kpiType_Id);
item.UpdateValues(kpiType);
repositroy.SaveChanges();
}
}
The item is not updated and the Grid changes to TemplateMode again. No errormessage is show at this time..
I thought, as it is in MVC, when Data-Annotations are used - no Postback is done when ClientSideValidation fails.
Furthermore I do not know, how to determine if there is an validation-error in code behind.
Please help :)