将列表用于 gridview 的数据源时,如何在列表中设置列名

本文关键字:列表 设置 gridview 用于 数据源 | 更新日期: 2023-09-27 18:35:03

>基本上,我有一个网格视图,它使用列表作为数据源。 如何告诉网格视图中的哪一列是哪一列?

        // Regions
        Dictionary<int, string> regions = (Master as SiteMaster).getCustomerRegions((Master as SiteMaster).userBasic_XsiteCustomerID);
        List<List<string>> regionsList = new List<List<string>>();
        foreach (int curRegionID in regions.Keys)
        {
            List<string> curRegion = new List<string>();
            Dictionary<string, string> curRegionDetail = (Master as SiteMaster).getRegionDetail(curRegionID);
            curRegion.Add(curRegionID.ToString());
            curRegion.Add(curRegionDetail["regionName"]);
            regionsList.Add(curRegion);
        }
        grv_regionManagement.DataSource = regionsList;
        grv_regionManagement.DataBind();

所以它给我抛出了一个错误,说 regionID 没有定义,这是有道理的,因为没有地方告诉网格视图第一列实际上是区域 ID。

以下是用于定义区域 ID 字段的 ASP.NET 代码:

            <asp:TemplateField HeaderText="regionID" InsertVisible="False" 
                SortExpression="regionID" Visible="False">
                <EditItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("regionID") %>'></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("regionID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

将列表用于 gridview 的数据源时,如何在列表中设置列名

与其列出字符串列表,不如使用将列作为属性的对象列表。可以使用这些属性作为每列的数据源。

如果您愿意放弃列表,请从列表中形成一个 DataTable,然后将该 DataTable 指定为数据源。请参阅此 SO 帖子并对其进行修改以从列表中填充数据表。

这样,您就不必担心告诉您的网格视图任何事情。