基本上我有一个使用列表作为数据源的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>
答案 0 :(得分:1)
不是列表中的字符串列表,而是列出将列作为属性的对象列表。您可以将这些属性用作每列的数据源。
答案 1 :(得分:1)
如果您愿意放开列表,则从列表中形成DataTable,然后将DataTable指定为DataSource。请参阅this SO post并修改它以从列表中填充DataTable。
这样,您就不必担心告诉您的gridview了什么。