-4

最初のドロップダウンリストの選択に基づいて、2つのドロップダウンリストにデータを入力したいのですが、2番目のドロップダウンリストにデータが入力されます

例 :

私のように2つのドロップダウンリスト、すなわち1.ddlCountry2.ddlStateがあります

これで、国が選択されると、選択されたに応じて、そのに関連する州が[州]ドロップダウンリストに入力されます。これは、コーディング言語をC#としてAsp.Netでページ全体をリロードすることで実現したいと思います。

どうすれば同じことを達成できますか?

Dropdownlistクエリを実行してデータベースからデータをフェッチしています。

4

3 に答える 3

0

フォームに 2 つのドロップダウン リストを追加し、次のように名前を付けますcmbStatescmbCities

から州名を選択すると、州名に基づいて都市を生成します(cmbStates cmbStates(dropwdownlist))cmbCities(dropdownlist)

データベースからデータを取得することにより

  private void Form1_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("server=pbs-server;database=p2p;user id=shekar;password=sekhar@1346");
        SqlCommand cmd = new SqlCommand("select states from Country", con);
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        con.Open();
        da.Fill(ds, "Country");
        cmbStates.DataSource = ds.Tables[0];
        cmbStates.SelectedValue = 0;
        con.Close();

    }

    private void cmbStates_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("server=xxxx;database=xxxx;user id=xxxxr;password=xxxxxx");
        SqlCommand cmd = new SqlCommand("select cities from States where cityname = 'cmbStates.SelectedItem.ToString()'", con);
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        con.Open();
        da.Fill(ds, "States");
        cmbCities.DataSource = ds.Tables[0];
        cmbCities.SelectedValue = 0;
        con.Close();           

    }

また

アイテムを手動で追加する

namespace DropDownlist
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            cmbStates.Items.Add("Andhra Pradesh");
            cmbStates.Items.Add("Tamilnadu");
            cmbStates.Items.Add("Karnataka");
            cmbStates.SelectedValue = 0;
        }

        private void cmbStates_SelectedIndexChanged(object sender, EventArgs e)
        {

            if (cmbStates.SelectedItem.ToString() == "Andhra Pradesh")
            {
                cmbCities.Items.Clear();
                cmbCities.Items.Add("Hyderabad");
                cmbCities.Items.Add("Guntur");
                cmbCities.Items.Add("Vijayawada");
                cmbCities.SelectedValue = 0;

            }
            else if (cmbStates.SelectedItem.ToString() == "Tamilnadu")
            {
                cmbCities.Items.Clear();
                cmbCities.Items.Add("Chennai");
                cmbCities.Items.Add("Coimbatore");
                cmbCities.Items.Add("ooty");
                cmbCities.SelectedValue = 0;

            }
            else if (cmbStates.SelectedItem.ToString() == "Karnataka")
            {
                cmbCities.Items.Clear();
                cmbCities.Items.Add("Bangalore");
                cmbCities.Items.Add("Mangalore");
                cmbCities.SelectedValue = 0;

            }
            else
            {
                MessageBox.Show("Please Select any value");
            }
        }
    }
}
于 2013-01-02T11:49:47.013 に答える
0
  1. AJAX toolkit CascadingDropDownの言う通りに使えますNaresh。また
  2. ajax更新パネルを使用して、すべてを保持Dropdownsします。そのため、ドロップダウン値を変更してもページ全体が読み込まれません。

さらに解決するためにコードを提供しませんでした。

于 2013-01-02T10:16:42.100 に答える
0
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
  FillStateByCountry();
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
  FillLocationByCountryandState();
}

private void FillStateByCountry()
{
    DataSet dstFillState;
    int CountryId = Convert.ToInt32(ddlCountry.SelectedValue.ToString());
    dstFillState = Tbl_State.FillDDLState(CountryId);
    ddlState.DataSource = dstFillState;
    ddlState.DataTextField = "State";
    ddlState.DataValueField = "Id";
    ddlState.DataBind();
}

同様にFillLocationByCountryandState();

于 2013-01-02T10:46:47.330 に答える