I am a new ASP.NET developer and I am trying to learn Linq-To-Entities. I am trying to bind a DropDownList with the Linq statement for retrieving the list of status in the S
The reason it is not working is because you are adding an item to the list and then overriding the whole list with a new DataSource
which will clear and re-populate your list, losing the first manually added item.
So, you need to do this in reverse like this:
Status status = new Status();
DropDownList1.DataSource = status.getData();
DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "Description";
DropDownList1.DataBind();
// Then add your first item
DropDownList1.Items.Insert(0, "Select");
I have tried with following code. it's working for me fine
ManageOrder Order = new ManageOrder();
Organization.DataSource = Order.getAllOrganization(Session["userID"].ToString());
Organization.DataValueField = "OrganisationID";
Organization.DataTextField = "OrganisationName";
Organization.DataBind();
Organization.Items.Insert(0, new ListItem("Select Organisation", "0"));
Although it is quite an old question, another approach is to change AppendDataBoundItems property. So the code will be:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AppendDataBoundItems="True">
<asp:ListItem Selected="True" Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>
If you do an "Add" it will add it to the bottom of the list. You need to do an "Insert" if you want the item added to the top of the list.
Private Sub YourWebPage_PreRenderComplete(sender As Object, e As EventArgs) Handles Me.PreRenderComplete
If Not IsPostBack Then
DropDownList1.Items.Insert(0, "Select")
End If
End Sub
Move DropDownList1.Items.Add(new ListItem("Select", "0", true)); After bindStatusDropDownList();
so:
if (!IsPostBack)
{
bindStatusDropDownList(); //first create structure
DropDownList1.Items.Add(new ListItem("Select", "0", true)); // after add item
}