Dropdownlist1              Dropdownlist2Dropdownlist1要求显示数据库中的字段名称(列名)
Dropdownlist2要求根据Dropdownlist1显示,列出该列的所有记录比如:
Dropdownlist1选出了Name列,然后Drodownlist2就显示出Name列中在数据库中的所有记录
Dropdownlist1选出了Phone列,然后Drodownlist2就显示出Phone列中在数据库中的所有记录

解决方案 »

  1.   

    //填充列名 Dropdownlist1
    DataTable dt = "select top 0 * from table"for (int i = 0; i < dt.Columns.Count; i++)
    {
        Dropdownlist1.Items.Add(.... dt.Columns[i].ColumnName.ToString());
    }//联动 Dropdownlist1.SelectedIndexChanged
    Dropdownlist2.DataSource = "select " + Dropdownlist1.SelectedItem.Value + " from table";
      

  2.   

    参考一下吧.
    非AJAX组件实现AJAX
    http://www.code-studio.net/CSView.aspx?aid=161
      

  3.   

    Dropdownlist1  中的SelectedIndexChanged事件中绑定Dropdownlist2 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection conn1 = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
            string id = DropDownList1.SelectedValue.ToString();
            SqlParameter[] parm = new SqlParameter[]
               {
                new SqlParameter("@admin_psortname", id)
               };
            DataSet ds2 = SqlHelper.ExecuteDataset(conn1, CommandType.StoredProcedure, "select_zsort_bypid", parm);
            DropDownList2.DataSource = ds2.Tables[0].DefaultView;
            this.DropDownList2.DataTextField = "admin_zsortname";
            this.DropDownList2.DataValueField = "admin_zsortname";
            DropDownList2.DataBind();
        }
      

  4.   

    //填充列名   Dropdownlist1 
    DataTable   dt   =   "select   top   0   *   from   table" for   (int   i   =   0;   i   <   dt.Columns.Count;   i++) 

            Dropdownlist1.Items.Add(....   dt.Columns[i].ColumnName.ToString()); 

    这里能否写完整点?我不太懂,多谢!!!
      

  5.   

    ajax实现无刷新嘛.....或者使用updatepanel就好了呀!
      

  6.   

    同意3楼的,绑定..
    Dropdownlist1 属性AutoPostBack 设为True
      

  7.   

    我想用Nils 的方法实现,不用ajax,哪位能帮帮我呀?谢谢!
      

  8.   

    //填充列名       Dropdownlist1   
    DataTable       dt       =       "select       top       0       *       from       table"   for       (int       i       =       0;       i       <       dt.Columns.Count;       i++)   
    {   
                    Dropdownlist1.Items.Add(....       dt.Columns[i].ColumnName.ToString());   
    }   
    这里能否写完整点?我不太懂,多谢!!!
    --------------------------------------------------------select top 0 * from 表     //查询出空集DataTable dt = new DataTable();然后把结果集付给dtdt.Columns[i].ColumnName.ToString()   //取得当前列的列名 即字段名for (int i = 0; i < dt.Columns.Count; i++)   
    {
        //填充Dropdownlist1
        Dropdownlist1.Items.Add(new ListItem(dt.Columns[i].ColumnName.ToString(),dt.Columns[i].ColumnName.ToString()));
    }
      

  9.   

     首先:Dropdownlist1   属性AutoPostBack   设为True
    protected void Page_Load(object sender, EventArgs e)
        {
            //向第一个下拉框中添加表中的字段
            if(!Page.IsPostBack)
            {
            objsets = objclass.objset();//获取数据集:表中所有的数据
            DropDownList1.DataSource=objsets;
            foreach(DataColumn  ds in objsets.Tables["userInfo"].Columns)
             {
                 DropDownList1.Items.Add(ds.ColumnName);
             }
           } 
        }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string result=DropDownList1.SelectedItem.ToString();//获取选中的字段内容
            SqlConnection objconn = objclass.getConnection();//获取连接对象
            string sql="select "+result+" from userInfo";
            SqlDataAdapter objsda = new SqlDataAdapter(sql, objconn);
            DataSet objset = new DataSet();
            objsda.Fill(objset, "userInfo");//填充数据集
            //绑定第二个下拉控件,内容是相应的字段中的值
            DropDownList2.DataSource = objset;
            DropDownList2.DataTextField = result;
            DropDownList2.DataValueField = result;//设置实际的值是:userInfo表中的选中的字段
            DropDownList2.DataBind();    }
      

  10.   

    再次请教Nils和beautifuldays 
    Nils:
    不能填充列名到Dropdownlist,Dropdownlist都是空的,代码如下:    protected void Page_Load(object sender, EventArgs e)
        {
            //向第一个下拉框中添加表中的字段 
            if (!Page.IsPostBack)
            {        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Compliance.mdb");
            OleDbConnection ConnAcc = new OleDbConnection(strConn);
            string strSQL = "";
            strSQL = "  select   top   0   *   from   tblFactoryList"; //查询出空集         DataTable   dt   =   new   DataTable();
            for   (int   i   =   0;   i   <   dt.Columns.Count;   i++)       
             { 
            //填充Dropdownlist1 
               DropDownList1.Items.Add(new   ListItem(dt.Columns[i].ColumnName.ToString(),dt.Columns[i].ColumnName.ToString()));           }
           }
       }beautifuldays:protected   void   Page_Load(object   sender,   EventArgs   e) 
            { 
                    //向第一个下拉框中添加表中的字段 
                    if(!Page.IsPostBack) 
                    { 
                    objsets   =   objclass.objset();//获取数据集:表中所有的数据 
                    DropDownList1.DataSource=objsets; 
                    foreach(DataColumn     ds   in   objsets.Tables["userInfo"].Columns) 
                      { 
                              DropDownList1.Items.Add(ds.ColumnName); 
                      } 
                  }   
            } 
    objsets   =   objclass.objset(); //提示找不到烦请各位帮忙,多谢!!!
      

  11.   

    objsets       =       objclass.objset();   //提示找不到 
    这个就是你从数据库里获取记录的操作 
      

  12.   

    strSQL   =   "     select       top       0       *       from       tblFactoryList";   //查询出空集                   DataTable       dt       =       new       DataTable(); 
                    for       (int       i       =       0;       i       <       dt.Columns.Count;       i++)               
                      {   
                    //填充Dropdownlist1   
                          DropDownList1.Items.Add(new       ListItem(dt.Columns[i].ColumnName.ToString(),dt.Columns[i].ColumnName.ToString()));                       } 
    lz这是你的代码..红的地方的dt是空的..
      

  13.   

    SqlConnection con = new SqlConnection("connectionstring");
    SqlCommand cmd = new SqlCommand("select top 0 * from ", con);
    SqlDataAdapter adp = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    adp.Fill(dt);for (int i = 0; i < dt.Columns.Count; i++)
    {
        DropDownList1.Items.Add(new ListItem(dt.Columns[i].ColumnName.ToString(),dt.Columns[i].ColumnName.ToString()));       
    }你的DropDownList1是取的表列名,所以应该用 dt.Columns[i].ColumnName.ToString()
      

  14.   

    //该类的objset方法返回一个数据集
    public DataSet objset()
        {
            SqlConnection objcon = getConnection();//获取连接对象
                sda = new SqlDataAdapter("select * from userInfo", objcon);
                objsets = new DataSet();
                sda.Fill(objsets, "userInfo");
                return objsets;
        }//objclass是一个类的对象,调用objset()方法,返回一个数据集
    DataSet objsets  = objclass.objset();
      

  15.   

    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bind();
            }
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DropDownList1.SelectedItem.Text == "Registrant")
            {
                bind();
            }
            else
            {
                bind1();
     
            }
        }
        public void bind()
        {
            string sqlstr = "select * from  Registrant";
            SqlConnection sqlcon = new SqlConnection("Data Source=.;Initial Catalog=MapToSuccess;Integrated Security=True");
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "Registrant");
            GridView1.DataSource = myds;
            GridView1.DataKeyNames = new string[] { "CompanyPIN" };//主键
            GridView1.DataBind();
            sqlcon.Close();
        }
        public void bind1()
        {
            string sqlstr = "select * from  Programme_Annuity";
            SqlConnection sqlcon = new SqlConnection("Data Source=.;Initial Catalog=MapToSuccess;Integrated Security=True");
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "Programme_Annuity");
            GridView1.DataSource = myds;
            GridView1.DataKeyNames = new string[] { "PipelineID" };//主键
            GridView1.DataBind();
            sqlcon.Close();
        }
    }