Udostępnij za pośrednictwem


Mapuj kolumny ListObject na dane

Jeśli powiążesz kontrolkę ListObject z elementem DataTable, możesz nie chcieć wyświetlić wszystkich kolumn na liście lub niektóre kolumny, które nie są powiązane z danymi. Podczas wywoływania SetDataBinding metody można mapować kolumny, które mają być wyświetlane w ListObject obiekcie .

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Excel. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Mapuj kolumny

Aby zamapować tabelę danych na kolumny na liście

  1. Utwórz element DataTable na poziomie klasy.

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Dodaj przykładowe kolumny i dane w procedurze Startup obsługi Sheet1 zdarzeń klasy (w projekcie na poziomie dokumentu) lub ThisAddIn klasie (w projekcie dodatku VSTO).

    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");
    
  3. Wywołaj metodę SetDataBinding i przekaż nazwy kolumn w kolejności, w której powinny zostać wyświetlone. Obiekt listy zostanie powiązany z nowo utworzonym DataTableobiektem , ale kolejność kolumn w obiekcie listy będzie różnić się od kolejności, w której są wyświetlane w obiekcie DataTable.

    this.list1.AutoSetDataBoundColumnHeaders = true;
    this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
    

Określanie niezamapowanych kolumn

Podczas mapowania kolumn na DataTableelement można również określić, że niektóre kolumny nie powinny być powiązane z danymi, przekazując pusty ciąg. Nowa kolumna, która nie jest powiązana z danymi, zostanie dodana do kontrolki ListObject .

Aby określić niezmapowany kolumnę podczas mapowania kolumn ListObject

  1. Wywołaj metodę SetDataBinding i przekaż nazwy kolumn w kolejności, w której powinny zostać wyświetlone. Użyj pustego ciągu, aby wskazać, gdzie jest dodawana niezamapowana kolumna; w tym przypadku między kolumną tytułu a kolumną nazwisko.

    this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
    

Kompilowanie kodu

W tym przykładzie kodu założono, że masz istniejącą ListObject nazwę list1 w arkuszu, w którym pojawia się ten kod.