0

Page_Load 時に入力する DropdownList があります

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable table = new DataTable();


                string connectionString = GetConnectionString();
                string sqlQuery = "select distinct sname from contacts where sname is not null";


                using (OracleConnection conn = new OracleConnection(connectionString))
                {

                    try
                    {
                        conn.Open();

                        using (OracleCommand cmd = new OracleCommand(sqlQuery, conn))
                        {

                            using (OracleDataAdapter ODA = new OracleDataAdapter(cmd))
                            {

                                ODA.Fill(table);

                            }

                        }
                    }
                    catch (Exception ex)
                    {
                        Response.Write("Not Connected" + ex.ToString());
                    }

                }

                //DropDownList1.DataSource = table;
                //DropDownList1.DataValueField = "";

                DropDownList2.DataSource = table;
                DropDownList2.DataValueField = "sname";
                DropDownList2.DataTextField = "sname";



                DropDownList2.DataBind();
            }
}

DropDownListのItemが変更されたときに、GridViewにデータを入力しようとしています

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataTable table = new DataTable();


            string connectionString = GetConnectionString();
            string val = DropDownList2.SelectedValue;

            string sqlQuery = "SELECT distinct DUTY_DATE FROM DUTY_ROTA,DUTY_TYPES,CONTACTS WHERE DUTY_DATE between SYSDATE and SYSDATE+30  AND DUTY_ROTA.DUTY_TYPE = DUTY_TYPES.DUTY_TYPE AND SNAME IS NOT NULL and contacts.sname = '" + val + "' ORDER BY DUTY_DATE";
            using (OracleConnection conn = new OracleConnection(connectionString))
            {

                try
                {
                    conn.Open();

                    using (OracleCommand cmd = new OracleCommand(sqlQuery, conn))
                    {

                        using (OracleDataAdapter ODA = new OracleDataAdapter(cmd))
                        {

                            ODA.Fill(table);

                        }

                    }
                }
                catch (Exception ex)
                {
                    Response.Write("Not Connected" + ex.ToString());
                }

            }

            GridView1.DataSource = table;
            GridView1.DataBind();

        }

AutoPostBack を有効にしました。DropDownList 項目を別の項目に変更すると、ページが読み込まれますが、常に最初の値が保持されます。私はデバッグしようとしました、私はそれを見つけました

string val = DropDownList2.SelectedValue;

val 変数は常にクエリによって返される最初の値です。どうすればこれを取り除くことができるか教えてください。ドロップダウンでアイテムを選択するたびに、GridView にデータを入力したいと考えています。

4

2 に答える 2

0

こんにちは、他のアイテムを選択すると、ドロップダウンリストが再び請求されると思います。ページの読み込みにブレークポイントを設定し、ドロップダウンリストが再び充電されるかどうかを確認します。他の理由はありません。幸運を

于 2013-10-28T14:07:23.543 に答える