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 :)
