dropdownlist - default value is not 'selected value'

i have created a dropdown list that is populated from a sqlserver datasource.

i have a separate sql command which uses the dropdownlist.selected value as a parameter and returns the command value to a label.

 it mostly works fine but with one problem. when the page loads, the label value is null, because it doesn't seem to treat the dropdownlist default value as a selected value. when i use the dropdownlist to select a value, this is fine and the label begins to display the expected value.

is there anyway I can make the default value when the page is loaded act like a manually selected value, so the label control never displays a null value?

1/9/2009 12:16:47 PM
asp.net.web-forms 93655 articles. 6 followers. Follow

7 Replies

Similar Articles

[PageSpeed] 5

 Can you post you code...

If your requirement is to Insert your own Item at the top and mark it as selectyed then here is the code


            ddlType.DataSource = objclsReservation.getTitles();
            ddlType.DataTextField = "str_Title";
            ddlType.DataValueField = "pk_TitleId";
            ddlType.Items.Insert(0, new ListItem("Please Select", "0"));

If you want to select a value alrady exist in your records then use this piece of code 


string strMemberTitle = ObjMember.Title; // Write your value to be selected
            for (int i = 0; i < ddlMembership.Items.Count; i++)
                if (ddlMembership.Items[i].Text.Equals(strMemberTitle))
                    ddlMembership.SelectedItem = strMemberTitle;
Please MARK post as ANSWERED, if you find answer helpful
1/9/2009 12:30:44 PM


Use this

 ASPX page

  <asp:ListBox ID="listbox1" runat="Server" AutoPostBack="true" Width="134px"></asp:ListBox>
  <asp:Label ID="lbltest" runat="server"></asp:Label>

ASPX.CS code behind page c# language

 protected void Page_Load(object sender, EventArgs e)



//To bind the data to drop down list

private void LoadDropDownList()

DataSet ds1 = new DataSet();
        ds1 = GetTypeListItem();
        listbox1.DataSource = ds1;
        listbox1.DataValueField = "Value";
        listbox1.DataTextField = "Text";

     if (ds1.Tables[0].Rows.Count >= 0)
            listbox1.SelectedIndex = 0;     // You can change this 1,2,3...list item selection


    lbltest.Text = DropDownList1.SelectedValue;


//To Get the list data from db using sproc

 public DataSet GetTypeListItem()

        SqlCommand sqlCmd = Utility.GetDBConnection("Sproc Name");

        SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
        DataSet ds = new DataSet();

        return ds;

 I hope this will hep you.
Thanks & Regards
Sandeep Reddy Pasham
GGK Technologies, Hyd
~ Please remember to click Mark as Answer on this post if it helped you ~
1/9/2009 12:42:16 PM
the dropdownlist is created this way:  

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"

DataSourceID="SqlDataSource3" DataTextField="Expr3" DataValueField="Expr3">


<asp:SqlDataSource ID="SqlDataSource3" runat="server"

ConnectionString="<%$ ConnectionStrings:AMBANTCONNECTIONSTRING %>"

SelectCommand="SELECT DISTINCT MONTH(EntryDate) AS Expr1, YEAR(EntryDate) AS Expr2, CAST(MONTH(EntryDate) AS varchar) + '-' + CAST(YEAR(EntryDate) AS varchar) AS Expr3 FROM entrydata WHERE (YEAR(EntryDate) IS NOT NULL) ORDER BY Expr2">


 and it displays Expr3 which shows values like "12-2008", "1-2009" etc

my c# / sql code for using the dropdownlist value as a parameter in another query is this:

string strSQLCommand7 = "select SUM(ElapsedTime) from entrydata where CAST(MONTH(EntryDate) AS varchar) + '-' + CAST(YEAR(EntryDate) AS varchar) = @mnthyrs;";

SqlCommand command7 = new SqlCommand(strSQLCommand7, conn);

command7.Parameters.AddWithValue((string) "@mnthyrs", DropDownList1.SelectedValue);

string returnvalue7 = (string)command7.ExecuteScalar().ToString();

 and i have a label called monthtothrs which i return the value to in this way

mnthtothrs.Text = returnvalue7;

when the page loads, thedropdownlist shows "12-2008" but the label doesn't show anything. if i use the dropdownlist to select something, the label shows me the right data. what i need is that when the page loads, it treats the value displayed in the dropdownlist as "selected" so it will pass a value to the label.

i hope i explained it correctly - i'm not exactly an expert!

1/9/2009 12:49:29 PM

call your code  to fill your label additional in the SqlDataSource3_selected event

protected void odsDetails_Selected(object sender, ObjectDataSourceStatusEventArgs e)
        DataView dv = (DataView)e.ReturnValue; 
        String selectedValue = dv[0][columnname].ToString(); // Get the Value from the first row
        CallYourFunction (selectedValue); 	
1/9/2009 1:11:46 PM

what do i put in place of "CallYourFunction"? i don't have any functions

1/9/2009 1:30:26 PM


try this example to validate bindable dropdownlist to make user must select item from it using RequiredField Validator:

Select Area :

<asp:DropDownList ID="ddl_Area" runat="server" AppendDataBoundItems="True" DataSourceID="SqlDataSource_Areas" DataTextField="AreaName" DataValueField="AreaID"

Width="154px" > <asp:ListItem Value="0" >Select Area ...</asp:ListItem>


<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ddl_Area"

ErrorMessage="Select Area." InitialValue="0" SetFocusOnError="True" >*</asp:RequiredFieldValidator>

In .NET 2.0, this can be done declaratively using the AppendDataBoundItems property. This will append all data-bound ListItems to the DropDownList, leaving those you add manually as the first selections.

Good Luck

1/9/2009 1:55:21 PM


i mean that you extract your code to get the value for your textbox.

Put this in a single function with one parameter for the selectedvalue as string.

Then call this function in from selectedindexchange and the _selected statement

1/9/2009 3:41:15 PM

Web resources about - dropdownlist - default value is not 'selected value' - asp.net.web-forms

Resources last updated: 2/19/2016 11:51:00 AM