Databound drop down list - initial value

后端 未结 8 1848
小蘑菇
小蘑菇 2020-12-24 03:21

How do I set the initial value of a databound drop down list in ASP.NET?

For instance, I want the values, but the first value to display should be -- Select One ---

相关标签:
8条回答
  • 2020-12-24 03:42

    To select a value from the dropdown use the index like this:

    if we have the

    <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true"></asp:DropDownList>
    

    you would use :

    DropDownList1.Items[DropDownList1.SelectedIndex].Value
    

    this would return the value for the selected index.

    0 讨论(0)
  • 2020-12-24 03:43
    dropdownlist.Items.Insert(0, new Listitem("--Select One--", "0");
    
    0 讨论(0)
  • 2020-12-24 03:49

    I think what you want to do is this:

    <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">
        <asp:ListItem Text="--Select One--" Value="" />   
    </asp:DropDownList>
    

    Make sure the 'AppendDataBoundItems' is set to true or else you will clear the '--Select One--' list item when you bind your data.

    If you have the 'AutoPostBack' property of the drop down list set to true you will have to also set the 'CausesValidation' property to true then use a 'RequiredFieldValidator' to make sure the '--Select One--' option doesn't cause a postback.

    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1"></asp:RequiredFieldValidator>
    
    0 讨论(0)
  • 2020-12-24 03:55

    I know this already has a chosen answer - but I wanted to toss in my two cents. I have a databound dropdown list:

    <asp:DropDownList 
      id="country" 
      runat="server" 
      CssClass="selectOne" 
      DataSourceID="country_code" 
      DataTextField="Name" 
      DataValueField="CountryCode_PK"
    ></asp:DropDownList>
    <asp:SqlDataSource 
      id="country_code" 
      runat="server" 
      ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
      SelectCommand="SELECT CountryCode_PK, CountryCode_PK + ' - ' + Name AS N'Name' FROM TBL_Country ORDER BY CountryCode_PK"
    ></asp:SqlDataSource>
    

    In the codebehind, I have this - (which selects United States by default):

    if (this.IsPostBack)
    {
      //handle posted data
    }
    else 
    {
      country.SelectedValue = "US";
    }
    

    The page initially loads based on the 'US' value rather than trying to worry about a selectedIndex (what if another item is added into the data table - I don't want to have to re-code)

    0 讨论(0)
  • 2020-12-24 03:56

    I know this is old, but a combination of these ideas leads to a very elegant solution:

    Keep all the default property settings for the DropDownList (AppendDataBoundItems=false, Items empty). Then handle the DataBound event like this:

    protected void dropdown_DataBound(object sender, EventArgs e)
    {
        DropDownList list = sender as DropDownList;
        if (list != null)
            list.Items.Insert(0, "--Select One--");
    }
    

    The icing on the cake is that this one handler can be shared by any number of DropDownList objects, or even put into a general-purpose utility library for all your projects.

    0 讨论(0)
  • 2020-12-24 03:56

    hi friend in this case you can use the

    AppendDataBound="true"
    

    and after this use the list item. for e.g.:

    <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">
        <asp:ListItem Text="--Select One--" Value="" />   
    </asp:DropDownList>
    

    but the problem in this is after second time select data are append with old data.

    0 讨论(0)
提交回复
热议问题