基本的に、リストをデータソースとして使用しているグリッドビューがあります。リスト内のどの列がどの列であるかをグリッドビューに伝えるにはどうすればよいですか?
// 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 であることをグリッドビューに伝える場所がないため、regionID が定義されていないというエラーが表示されます。
regionID フィールドを定義するための 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>