Databind ASP.NET List of ListItem to DropDownList issue

爷,独闯天下 提交于 2019-11-28 20:14:22

Hi when databinding (to anything) you need to set the DataTextField and DataValueField of your DropDownList. In your case you should use the following code

List<ListItem> users = new List<ListItem>();
foreach (SubscriptionUser su in subscriptionDetails.UserList)
{
    users.Add(new ListItem(su.FirstName + " " + su.LastName, su.EmailAddress));
}
ddlPrimaryContact.DataTextField = "Text";
ddlPrimaryContact.DataValueField = "Value";
ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataBind();

You should bind your dropdown list as :

ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataTextField = "Value";
ddlPrimaryContact.DataValueField = "Text";
ddlPrimaryContact.DataBind();

If you ask why, as far as I know, databound controls takes texts and values (if they are not supplied like above) by calling the ToString method for each item in datasource collection. So each ListItem in your collection return it's Text property by ToString method.

Or, alternatively, you could bind it this way. (Assuming you can add a readOnly property to SubscriptionUser called FullName (which returns su.FirstName + " " + su.LastName)

ddlPrimaryContact.DataSource = subscriptionDetails.UserList;
ddlPrimaryContact.DataBind();

then, in your ASPX page put:

<asp:DropDownList id="ddlPrimaryContact" runat="server" DataTextField="FullName" DataValueField="EmailAddress" />

you can aslo directly add listitem to dropdown..

List<ListItem> users = new List<ListItem>();
        for (int count = 0; count < 10; count++)
        {
            ListItem li = new ListItem("List " + count.ToString(), count.ToString());
            ddl.Items.Add(li);
        }

There is a way to add ListItem items to a DropDownList and having .NET automagically match the ListItem's Text with the DropDownList's Text, and the same for Value:

List<ListItem> users = new List<ListItem>();
// fill in list
ddlUsers.Items.AddRange(users.ToArray());
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!