• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 621
  • Last Modified:

Set SelectedValue on a dropdownlist after selecting a value in other dropdownlist

Hi,

I have 2 dropdownlists, 1 for the city and 1 for the postal code. When the page loads, the 2 dropdowns are filled from a database table (they are set up the same way).

When I select the city i want the corresponding postal code selected in the dropdown with the postal codes. How can this be done? It should also work the in the other way.

Attached you will find the code for as far i got.


Kind regards,
Maarten
*.aspx file
-----------
<asp:DropDownList ID="ddlBillToCity" style="width: 227px;" runat="server" 
                                AutoPostBack="True" onselectedindexchanged="ddlBillToCity_SelectedIndexChanged"></asp:DropDownList>

<asp:DropDownList ID="ddlBillToPostCode" style="width: 227px;" runat="server" 
                                AutoPostBack="True" OnSelectedIndexChanged="ddlBillToPostCode_SelectedIndexChanged"></asp:DropDownList>

*.aspx.cs file
--------------
protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            
        }
        else
        {
            //if no postback, then there can't be a table in the session
            // so we create and save it's layout here
            PostalCodeList = new DataTable();
            PostalCodeList.Columns.Add("Code");
            PostalCodeList.Columns.Add("City");
            PostalCodeList.Columns.Add("CodeCity");
            Session["PostalCodeList"] = PostalCodeList;

            ////Fill the PostalCodeList & DropDownList ddlBillToPostCode & DropDownList ddlBillToCity
            FillPostalCodeListFromDB();
        }
    }

protected void ddlBillToCity_SelectedIndexChanged(object sender, EventArgs e)
    {
        
    }

    protected void ddlBillToPostCode_SelectedIndexChanged(object sender, EventArgs e)
    {
        
    }

Open in new window

0
maartendierckxsens
Asked:
maartendierckxsens
  • 4
  • 3
  • 2
1 Solution
 
Jesus RodriguezIT ManagerCommented:
You must work with the selectedIndex_change event of each one
0
 
Jesus RodriguezIT ManagerCommented:
You can do this
- Add an ID fiel to the Columns of the Datatable
- Set the value for each dropdownlist value as the IdColumn
- Set the DisplayField member for the first dropdown as the Code colum
- Set the DisplayField member for the second dropdown as the City column
- On the SlectedIndexChanged of the first one said that the Dropdownlist2.selectedvalue=Dropdownlist1.selectedvalue
-On the SlectedIndexChanged of the second one said that the Dropdownlist1.selectedvalue=Dropdownlist2.selectedvalue
-  Set the Autopostback to true en both dropdown list and is done, good to go
0
 
maartendierckxsensAuthor Commented:
Can it also been done on the text of the dropdownlist?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
systanCommented:
hi,  try my tested code and analyze the code shows.
using Sql.Data.SqlClient;

namespace Form1
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        string ConString = "SERVER=localhost;" +
                        "port=SQL_PORT_YOU_ADDRESS;" +
                        "database=YOUR_DATABASE_NAME_HERE;" +
                        "user id=YOUR_USERNAME;" +
                        "password=;";

       SqlConnection con;

       private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            con.Close();
        }


       private void Form1_Load(object sender, EventArgs e)
        {
            con = new SqlConnection(ConString);
            con.Open();
            con.InitializeLifetimeService();

	populate_citylist();
	populate_codeList();

       }
       

 private void populate_codeList()
            {
                string query = "select code from codecity where city='" + ddlBillToCity.SelectedItem + "' ";
                using (SqlCommand ad = new SqlCommand(query, con))
                {
                    SqlDataReader dr = ad.ExecuteReader();
                    if (!dr.HasRows) return; 
                    while (dr.Read())
                    {
                        ddlBillToPostCode.Items.Add(dr.GetValue(0));  
                    }
                    dr.Close();
                    ddlBillToPostCode.SelectedIndex=0; 
               }
            }


 private void populate_citylist()
            {
                string query = "select city from codecity";
                using (SqlCommand ad = new SqlCommand(query, con))
                {
                    SqlDataReader dr = ad.ExecuteReader();
                    if (!dr.HasRows) return; 
                    while (dr.Read())
                    {
                        ddlBillToCitye.Items.Add(dr.GetValue(0));  
                    }
                    dr.Close();
                    ddlBillToCity.SelectedIndex=0; 
               }
            }



protected void ddlBillToCity_SelectedIndexChanged(object sender, EventArgs e)
    {
        populate_codelist();
    }

     
 }
}

Open in new window

0
 
systanCommented:
Additional; you can set styles upon loading;

       private void Form1_Load(object sender, EventArgs e)
        {
            con = new SqlConnection(ConString);
            con.Open();
            con.InitializeLifetimeService();

      //here it is
      ddlBillToCity.DropDownStyle = ComboBoxStyle.DropDownList;
      ddlBillToPostCode.DropDownStyle = ComboBoxStyle.DropDownList;


      populate_citylist();
      populate_codeList();

       }


0
 
Jesus RodriguezIT ManagerCommented:
Yes, it van be done by the text
0
 
maartendierckxsensAuthor Commented:
Ok, I have it done with the following:

protected void ddlBillToCity_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlBillToPostCode.SelectedIndex = ddlBillToCity.SelectedIndex;
    }


Thanks to everybody for the support.
0
 
Jesus RodriguezIT ManagerCommented:
Be sure That the selectedindex be the same for both dropdown
0
 
maartendierckxsensAuthor Commented:
a solution is found, thanks for the support
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now