将字典(在列表中)绑定到gridview中的下拉列表

时间:2013-02-18 10:46:10

标签: c# asp.net

我正在尝试从列表中构建的字典中填充下拉列表,因此例如列表是从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>

但是密钥和值都被添加到下拉列表中的值字段中。我哪里错了?任何例子都会非常感激。

1 个答案:

答案 0 :(得分:0)

我认为this link可以帮到你吗?基本上你必须定义像

这样的东西
DataValueField="listID" DataTextField="listName" SelectedValue='<%#Bind("listID") %>'