Comment : mapper des colonnes ListObject aux données
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Projets au niveau du document
Projets au niveau de l'application
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Lorsque vous liez un contrôle ListObject à DataTable, vous ne souhaitez peut-être pas afficher toutes les colonnes d'une liste ou vous pouvez avoir des colonnes non liées aux données. Vous pouvez mapper les colonnes que vous souhaitez voir apparaître dans le contrôle ListObject lorsque vous appelez la méthode SetDataBinding.
Mappage de colonnes
Pour mapper une table de données aux colonnes d'une liste
Créez DataTable au niveau de la classe.
Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
System.Data.DataTable table = new System.Data.DataTable("Employees");
Ajoutez des colonnes d'exemple et des données dans le gestionnaire d'événements Startup de la classe Sheet1 (dans un projet au niveau du document) ou dans la classe ThisAddIn (dans un projet au niveau de l'application).
table.Columns.Add("Id", GetType(Int32)) table.Columns.Add("FirstName", GetType(String)) table.Columns.Add("LastName", GetType(String)) table.Columns.Add("Title", GetType(String)) table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative") table.Rows.Add(2, "Robert", "Brown", "Sales Representative")
table.Columns.Add("Id", typeof(int)); table.Columns.Add("FirstName", typeof(string)); table.Columns.Add("LastName", typeof(string)); table.Columns.Add("Title", typeof(string)); table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative"); table.Rows.Add(2, "Robert", "Brown", "Sales Representative");
Appelez la méthode SetDataBinding et passez le nom des colonnes dans l'ordre dans lequel elles doivent apparaître. L'objet de liste sera lié au nouveau DataTable, mais l'ordre des colonnes dans l'objet de liste sera différent de l'ordre dans lequel elles apparaissent dans DataTable.
Me.List1.AutoSetDataBoundColumnHeaders = True Me.List1.SetDataBinding(table, "", "Title", "LastName", "FirstName")
this.list1.AutoSetDataBoundColumnHeaders = true; this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
Spécification de colonnes non mappées
Lorsque vous mappez des colonnes à DataTable, vous pouvez également spécifier que certaines colonnes ne doivent pas être liées aux données en passant une chaîne vide. Une nouvelle colonne qui n'est pas liée aux données est alors ajoutée au contrôle ListObject.
Pour spécifier une colonne non mappée lors du mappage des colonnes ListObject
Appelez la méthode SetDataBinding et passez le nom des colonnes dans l'ordre dans lequel elles doivent apparaître. Utilisez une chaîne vide pour indiquer l'endroit où une colonne non mappée est ajoutée ; dans le cas présent, entre la colonne de titre et la colonne de nom.
Me.List1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName")
this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
Compilation du code
Cet exemple de code suppose qu'un contrôle ListObject nommé list1 existe dans la feuille de calcul dans laquelle ce code apparaît.
Voir aussi
Tâches
Comment : remplir de données des contrôles ListObject
Concepts
Développement d'un complément d'application pour Excel
Ajout de contrôles à des documents Office au moment de l'exécution
Fonctionnement de la persistance de l'ordre des lignes et colonnes ListObject