Valider les données lorsqu’une nouvelle ligne est ajoutée à un contrôle ListObject
Les utilisateurs peuvent ajouter de nouvelles lignes à un contrôle ListObject qui est lié aux données. Vous pouvez valider les données de l’utilisateur avant d’approuver les modifications apportées à la source de données.
S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Excel. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.
Validation des données
Chaque fois qu’une ligne est ajoutée à un ListObject qui est lié aux données, l’événement BeforeAddDataBoundRow est déclenché. Vous pouvez gérer cet événement pour effectuer la validation de vos données. Par exemple, si votre application exige que seuls les employés âgés de 18 à 65 ans puissent être ajoutés à la source de données, vérifiez que l’âge entré est compris dans cette plage avant l’ajout de la ligne.
Remarque
Vous devez toujours vérifier l’entrée d’utilisateur sur le client, mais aussi sur le serveur. Pour plus d’informations, consultez Applications clientes sécurisées.
Pour valider des données lorsqu’une nouvelle ligne est ajoutée à un ListObject lié aux données
Créez des variables pour l’ID et DataTable au niveau de la classe.
Créez un exemple DataTable de colonnes et de données dans le
Startup
gestionnaire d’événements de laSheet1
classe (dans un projet au niveau du document) ouThisAddIn
classe (dans un projet de complément VSTO).employeeTable = new System.Data.DataTable("Employees"); System.Data.DataColumn column = employeeTable.Columns.Add ("Id", typeof(int)); column.AllowDBNull = false; employeeTable.Columns.Add("FirstName", typeof(string)); employeeTable.Columns.Add("LastName", typeof(string)); employeeTable.Columns.Add("Age", typeof(int)); employeeTable.Rows.Add(id, "Nancy", "Anderson", "56"); employeeTable.Rows.Add(id, "Robert", "Brown", "44"); id++; list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age"); list1.BeforeAddDataBoundRow +=new Microsoft.Office.Tools.Excel. BeforeAddDataBoundRowEventHandler(list1_BeforeAddDataBoundRow);
Ajoutez du code au gestionnaire d’événements
list1_BeforeAddDataBoundRow
pour vérifier si l’âge entré est compris dans la plage autorisée.private void list1_BeforeAddDataBoundRow(object sender, Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs e) { System.Data.DataRow row = ((System.Data.DataRowView)e.Item).Row; if (row["Age"] != null && row["Age"] != Convert.DBNull) { int ageEntered = (int)row["Age"]; if (ageEntered < 21 || ageEntered > 65) { System.Windows.Forms.MessageBox.Show ("Age must be between 21 and 65. The row cannot be added."); e.Cancel = true; return; } row["ID"] = id; id++; } else { System.Windows.Forms.MessageBox.Show("You must enter an age."); e.Cancel = true; } }
Compiler le code
Cet exemple de code suppose qu’un ListObject nommé list1
existe dans la feuille de calcul dans laquelle ce code apparaît.
Contenu connexe
- Étendre des documents Word et des classeurs Excel dans des compléments VSTO au moment de l’exécution
- Contrôles sur les documents Bureau
- Ajouter des contrôles à Bureau documents au moment de l’exécution
- Contrôle ListObject
- Automatiser Excel à l’aide d’objets étendus
- Guide pratique pour mapper des colonnes ListObject aux données