Ich habe den folgenden C# -Code, der funktioniert. Wenn ich also das Dropdown-Menü "Land" auswähle, wird das Dropdown-Menü "Status" ausgefüllt.Cascading-Dropdown-Steuerelemente
Was ich versuche zu tun, wenn das Dropdown-Menü State (ComboBox2) ausgewählt ist, sollte das entsprechende Land (ComboBox1) selectedIndex auf das jeweilige Land geändert werden.
Beispiel: Wenn Gujrat ausgewählt wird Indien
im ersten comboBox1 zeigen sollteusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace cascadingdropdownlist
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True");
DataRow dr;
public Form1()
{
InitializeComponent();
refreshdata();
}
public void refreshdata()
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tbl_country", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dr = dt.NewRow();
dr.ItemArray = new object[] { 0, "--Select Country--" };
dt.Rows.InsertAt(dr, 0);
comboBox1.ValueMember = "countryid";
comboBox1.DisplayMember = "countryname";
comboBox1.DataSource = dt;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue.ToString()!= null)
{
int countryid = Convert.ToInt32(comboBox1.SelectedValue.ToString());
refreshstate(countryid);
}
}
public void refreshstate(int countryid)
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tbl_state where countryid= @countryid", con);
cmd.Parameters.AddWithValue("countryid", countryid);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dr = dt.NewRow();
dr.ItemArray = new object[] { 0, "--Select State--" };
dt.Rows.InsertAt(dr, 0);
comboBox2.ValueMember = "stateid";
comboBox2.DisplayMember = "statename";
comboBox2.DataSource = dt;
}
}
}
Ohne Land, werden Staaten nicht nach deinem Code gefüllt werden? Wie können Sie den Status für ein anderes als das ausgewählte Land auswählen? – Krishna
@Krishna Standardmäßig werden beide Dropdown-Felder beim Laden des Formulars alle Status und alle Länder anzeigen. – user580950
Ich sehe es nicht in der Form laden, ich sehe nur Länderdaten laden, egal, was ist das Problem, vor dem Sie stehen? – Krishna