[SOLVED] Dropdownlist Datasource and adding extra item from C#


I have a DropDownList that is associated with a DataSource in the aspx page. I need to add one more item when the page is loaded.

My Code:

<asp:LabelDropDownList ID="ddlVisualTemplate" runat="server" LabelText="Visual Template:"      DataSourceID="VisualTemplateDataSource" DataTextField="Name" DataValueField="Id" AutoPostBack="true" OnSelectedIndexChanged="ddlVisualTemplate_SelectedIndexChanged"/>                         

<asp:EntityDataSource ID="VisualTemplateDataSource" runat="server" 
     DefaultContainerName="Entities" EnableFlattening="False" 

And I am trying to an extra item to it:

    protected void Page_Load(object sender, EventArgs e)
        if (!IsPostBack)
            ddlVisualTemplate.Items.Add(new ListItem("None", string.Empty));

If I debug the code, it goes through it. But When the page is displayed dropdown doesn’t contain "None".


It’s most probably because you’re adding the item before the DataBind(). If you want to add an item with


then you have to do it after the dropdown is being bound.

If you look at http://msdn.microsoft.com/en-us/library/ms178472.aspx then DataBind is being done in PreRenderComplete. So you have to add the element in some event that occurs after PreRenderComplete.
Or you could do it on the ddlVisualTemplate.DataBound event.

Answered By – ub1k

Answer Checked By – Marilyn (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *