使用gridview数据源列表时,如何在列表中设置列名?

时间:2012-05-23 15:54:26

标签: c# asp.net

基本上我有一个使用列表作为数据源的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();

所以它给我一个错误,说区域ID没有定义,这是有道理的,因为没有告诉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>

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您愿意放开列表,则从列表中形成DataTable,然后将DataTable指定为DataSource。请参阅this SO post并修改它以从列表中填充DataTable。

这样,您就不必担心告诉您的gridview了什么。