Je viens de commencer à utiliser les classes LINQ to SQL, et j'aime beaucoup la façon dont cela m'aide à écrire du code lisible. Dans la documentation, les exemples typiques indiquent que pour faire une validation personnalisée, vous créez une classe partielle comme suit: :
partial class Customer
{
partial void OnCustomerIDChanging(string value)
{
if (value=="BADVALUE") throw new NotImplementedException("CustomerID Invalid");
}
}
Et de même pour les autres champs... Et ensuite dans le codebehind, je mets quelque chose comme ceci pour afficher le message d'erreur et garder l'utilisateur sur la même page afin de corriger l'erreur.
public void CustomerListView_OnItemInserted(object sender, ListViewInsertedEventArgs e)
{
string errorString = "";
if (e.Exception != null)
{
e.KeepInInsertMode = true;
errorString += e.Exception.Message;
e.ExceptionHandled = true;
}
else errorString += "Successfully inserted Customer Data" + "\n";
errorMessage.Text = errorString;
}
D'accord, c'est facile, mais ensuite il arrête de valider le reste des champs dès que la première exception est lancée ! Ce qui veut dire que si l'utilisateur a fait plus d'une erreur, il ne sera notifié que de la première erreur. Existe-t-il un autre moyen de vérifier toutes les entrées et de montrer les erreurs pour chacune d'entre elles ? Toute suggestion sera appréciée, merci.