我正在尝试从列表中构建的字典中填充下拉列表,因此例如列表是从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>
但是密钥和值都被添加到下拉列表中的值字段中。我哪里错了?任何例子都会非常感激。
答案 0 :(得分:0)
我认为this link可以帮到你吗?基本上你必须定义像
这样的东西DataValueField="listID" DataTextField="listName" SelectedValue='<%#Bind("listID") %>'