リスト内に構築された辞書からドロップダウンを作成しようとしているので、たとえば、リストはEventsクラスから構築されます(この例では、少し切り詰められています)。
public class Events
{
public Events()
{
StartDate = new Dictionary<string, string>();
}
[DataMember(Name = "eventId")]
public Guid EventId { get; set; }
[DataMember(Name = "eventName")]
public string EventName { get; set; }
[DataMember(Name = "startDate")]
public Dictionary<string, string> StartDate { get; set; }
}
そして、実際のデータバインディング:
protected void submitSearch_Click(object sender, EventArgs e)
{
if (IsValid)
{
IEnumerable<Events> events = EventProvider.FindEvents(eventName.Text);
eventSearchResults.DataSource = events;
eventSearchResults.DataBind();
}
}
私が持っているページで:
<asp:TemplateField HeaderText="Start date">
<ItemTemplate>
<p>
<asp:Label ID="lblStartDate" Text="Start month/year" runat="server" /><br />
<asp:DropdownList ID="ddlStartDate" DataSource='<%# Eval("startDate") %>' runat="server" />
</p>
</ItemTemplate>
ただし、キーと値の両方がドロップダウンの値フィールドに追加されています。どこが間違っているのですか?どんな例でも本当にありがたいです。