I am trying to populate a dropdown using values from a column. Now the problem is: I am not getting the actual values (the country codes like India(+61)) in the dropdown. In
You haven't set the DataTextField
in the DropDownList
. It's recommended to set also the DataValueField
In your aspx add the DataTextField
property:
<asp:DropDownList ID="ddlMobile" runat="server"
DataTextField="CountryCode"
DataValueField="CountryCode" />
You can also set it in the code behind, like the other answers show.
Otherwise the behaviour that you are seeing, is because the DataBound is calling the ToString()
to display the info, as you don't provided wich data field look for.
You are seeing what the default implementation of DataRowView.ToString() does. To pick specific fields from within the DataRow to display, do something like this.
ddlMobile.DataSource = ds1.Tables["AllUser"];
ddlMobile.DataTextField = "CountryCode"; // This is text displayed
ddlMobile.DataValueField = "CountryCode"; // This is the value returned
ddlMobile.DataBind();
You should set the DataValueField
and DataTextField
Properties of the drop down.
ddlMobile.DataSource = ds1.Tables["AUser"];
ddlMobile.DataValueField = "CountryCode";
ddlMobile.DataTextField = "CountryName";
ddlMobile.DataBind();
Here CountryCode and CountryName must be the column names corresponding to those values in your DataRow