将 ListObject 列映射到数据

ListObject 控件绑定到 DataTable时,可能不希望显示列表中的所有列,或可能具有未绑定到数据的特定列。 调用 ListObject 方法时,可以映射希望出现在 SetDataBinding 中的列。

适用于: 本主题中的信息适用于 Excel 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

映射列

将数据表映射到列表中的列

  1. 在类级创建 DataTable

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Startup类(文档级项目)或ThisAddIn类(VSTO 外接程序项目中)的Sheet1事件处理程序中添加示例列和数据。

    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. 调用 SetDataBinding 方法并以列名应显示的顺序传入列表。 列表对象将绑定到新创建的 DataTable列,但列表对象中的列顺序将不同于它们在其中显示 DataTable的顺序。

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

指定未映射的列

将列映射到 DataTable时,还可以通过传入空字符串来指定特定列不应绑定到数据。 未绑定到数据的新列随后会添加到 ListObject 控件。

在映射 ListObject 列时指定未映射的列

  1. 调用 SetDataBinding 方法并以列名应显示的顺序传入列表。 使用空字符串可指示添加未映射的列的位置;在此例中,是介于标题.栏与最后一个名称列之间。

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

编译代码

此代码示例假定在此代码出现的工作表中有一个名为 ListObject 的现有 list1