Quando convalidare i dati immessi ?

  • Thread starter P. Marcello Genuini
  • Start date
P

P. Marcello Genuini

Salve a tutti,
Premesso che sono alle prime armi con c#, spero qualcuno di voi possa
aiutarmi in un questo mio problema.
Stò scrivendo una repository di form in c# che dovrebbero essere poi usate
da un team di sviluppatori per scrivere applicazioni, e quindi vorrei dotare
le varie form padre di più funzionalità possibili per evitare che queste
vengano demandate alle form figlie che ereditano da queste.
Prendiamo una form classica di gestione dati (singola tabella): questa
contiene

- una toolbar con bottoni che operano sul DataTable (First, Previous, Next,
........ New, Edit....Salva..etc.etc.)

- diversi controlli "bindati" (scusateil termine ma non me ne viene in mente
un'altro) ai campi

Il mio problema è, n quale punto devo convalidare i dati immessi dall'utente
?
Vengo e mi spiego :)

In caso di Inserimento di un nuovo record il codice che viene eseguito al
click del bottone
sulla toolbar è:

private DataRowView NewRecord(CurrencyManager aCM)

{

if (this.BeforeInsert(aCM))

{

((DataView) aCM.List).AddNew();

aCM.Position = aCM.Count - 1;


DataRowView drNew = ((DataView) aCM.List)[aCM.Position];

((DataView) aCM.List).AllowDelete = false;

((DataView) aCM.List).AllowEdit = false;

((DataView) aCM.List).AllowNew = false;

this.StateChanged(aCM);

return drNew;

}

else

return null;

}


(BeforeInsert è un metodo che metto a disposizione per effettuare eventuali
operazioni prima che l'operazione di insert cominci, ed eventualmente
annullarla)

Con StateChanged abilito/disabilito i bottoni della toolbar in base allo
stato della DataTable (Quando sono in fase d'inserimento e/o Modifica gli
unici bottoni abiliati sono Salva e Annulla)

Prima domanda: Agire sul CurrencyManager per effettuare questo tipo di
operazioni è l'unico modo oppure ve ne sono altri, tenendo presenti che io
non conosco a priori la DataTable su cui sto' operando (Sono delle form
"padre") ?

Seconda Domanda: Se prima non chiamo aCM.EndCurrentEdit() quando interrogo
le colonne della DataRowView in fase d'inserimento non trovo assolutamente
nulla. Sbaglio qualcosa oppure e proprio cosi' che deve funzionare ? E se e
cosi' che deve funzionare qual'è il momento migliore per effettuare la
validazione dei dati inseriti da un uTonto (utente). Ho provato anche con
gli eventi RowChanged e RowChanging ma il tutto funziona solo dopo la
chiamata a EndCurrentEdit().

Scusate per la lunghezza del Post, ma ho provato ad essere il piu'
esauriente possibile.
Grazie in anticipo a tutti quelli che mi aiuteranno.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top