将列表用于 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>
与其列出字符串列表,不如使用将列作为属性的对象列表。可以使用这些属性作为每列的数据源。
如果您愿意放弃列表,请从列表中形成一个 DataTable,然后将该 DataTable 指定为数据源。请参阅此 SO 帖子并对其进行修改以从列表中填充数据表。
这样,您就不必担心告诉您的网格视图任何事情。