级联复选框列表的多个选择

问题描述

我想从Oracle数据库中将一个复选框列表的数据检索到另一个复选框列表,以便在asp.net中进行多重选择。 但不幸的是,调试时我再次得到了相同的ID。 请帮我在哪里我做错了。

在同一方法上还有其他简单的方法吗?

我想要类似以下内容:“从表中选择d.depot_code,d.depot_description,其中d.depot位于(另一个复选框列表中的depot_code)” [[用逗号分隔的ID] 代码

ddlregion绑定代码

public void BindRegion()
        {
            OracleCommand Cmd = new OracleCommand("select * from regions",con);
            Cmd.CommandType = CommandType.Text;
            OracleDataAdapter da = new OracleDataAdapter();
            DataSet ds = new DataSet();
            da.SelectCommand = Cmd;
            da.Fill(ds);
            ddlregion.DataSource = ds;
            ddlregion.DataTextField = "REGION_DESC";
            ddlregion.DataValueField = "REGION_CODE";
            ddlregion.DataBind();

        }



 protected void ddlregion_SelectedindexChanged(object sender,EventArgs e)
        {
            ddlDepot.Items.Clear();
            ddlDepot.Items.Add(new ListItem("--Select Depot--",""));
            for (int i = 0; i < ddlregion.Items.Count; i++)
            {

                if (ddlregion.Items[i].Selected == true)
                {
                    
                    string str = "select d.depot_code,d.depot_description from regions r,sub_regions sr,depots d where r.region_code = sr.region_code and sr.sub_region_code = d.sub_region_code and active = 'Y' and d.depot_code = " + ddlregion.SelectedItem.Value + "";
                    OracleCommand Cmd = new OracleCommand(str,con);
                    Cmd.CommandType = CommandType.Text;
                    OracleDataAdapter da = new OracleDataAdapter();
                    DataSet ds = new DataSet();
                    da.SelectCommand = Cmd;
                    da.Fill(ds);
                    ddlDepot.DataSource = ds;
                    ddlDepot.DataTextField = "DEPOT_DESCRIPTION";
                    ddlDepot.DataValueField = "DEPOT_CODE";
                    ddlDepot.DataBind();
                }
            }
        }

谢谢

解决方法

再次查看您的代码,似乎不需要遍历区域下拉列表。在ddlRegion_indexchanged中,继续绑定ddlDepot下拉列表,并将其传递给ddlregion.SelectedValue。因此,您所需要的全部都在下面,更改Region时,ddlDepot将相应绑定,因为每次都将选定的值传递给它。

      string str = "select d.depot_code,d.depot_description from regions r,sub_regions sr,depots d where r.region_code = sr.region_code and sr.sub_region_code = d.sub_region_code and active = 'Y' and d.depot_code = " + ddlregion.SelectedValue + "";
                OracleCommand Cmd = new OracleCommand(str,con);
                Cmd.CommandType = CommandType.Text;
                OracleDataAdapter da = new OracleDataAdapter();
                DataSet ds = new DataSet();
                da.SelectCommand = Cmd;
                da.Fill(ds);
                ddlDepot.DataSource = ds;
                ddlDepot.DataTextField = "DEPOT_DESCRIPTION";
                ddlDepot.DataValueField = "DEPOT_CODE";
                ddlDepot.DataBind();   

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...