0

基本上我有一个使用列表作为数据源的gridview。如何告诉gridview列表中的哪一列是哪一列?

        // 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 没有定义,这是有道理的,因为没有地方告诉 gridview 第一列实际上是 regionID。

这是 ASP.NET 中用于定义 regionID 字段的代码:

            <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>
4

2 回答 2

1

而不是字符串列表的列表,而是具有将列作为属性的对象列表。您可以将这些属性用作每列的数据源。

于 2012-05-23T16:43:42.020 回答
1

如果您愿意放弃列表,则从您的列表中形成一个 DataTable,然后将 DataTable 分配为 DataSource。请参阅此 SO 帖子并对其进行修改以填充列表中的 DataTable。

这样,您就不必担心告诉您的 gridview 任何内容。

于 2012-05-23T17:52:35.143 回答