Dropdownlist怎么获取绑定的数据项的ID啊?
我的dropdownlist绑定的数据源是查询的数据库中的 string selpc = "select province_city from JOB_provinceandcity where fid=0";
 SqlDataAdapter sda1 = new SqlDataAdapter(selpc, conn);
 conn.Open();
 DataSet ds1 = new DataSet();
sda1.Fill(ds1);
this.ddlprovince.DataSource = ds1;
 this.ddlprovince.DataTextField = "province_city";
 this.ddlprovince.DataBind();怎么获取他选定项的ID啊?

解决方案 »

  1.   

    string selpc = "select province_city,ID from JOB_provinceandcity where fid=0";
     SqlDataAdapter sda1 = new SqlDataAdapter(selpc, conn);
     conn.Open();
     DataSet ds1 = new DataSet();
    sda1.Fill(ds1);
    this.ddlprovince.DataSource = ds1;
     this.ddlprovince.DataTextField = "ID";
     this.ddlprovince.DataBind();
      

  2.   

    补充上楼:把ID 换成城市的ID
      

  3.   

    this.ddlprovince.DataValueField = "ID的列名";
      

  4.   


    //地区绑定
        private void Bind()
        {
            SqlDataReader dr = ba.GetDUList("Areashi='石家庄'");
            while (dr.Read())
            {
                ListItem li = new ListItem();
                li.Value = dr["AreaID"].ToString();
                li.Text = dr["AreaName"].ToString();
                quyu.Items.Add(li);
            }
            dr.Close();
        }
      

  5.   

    你都没给DropDownlist绑定ID,怎么提取出来
    this.ddlprovince.DataTextValue 这个是绑定数据库中的ID
    如果你要提取的话 那就是 this.ddlprovince.SelectItem.Value或者是this.ddlprovince.selectedValue
      

  6.   

    汗 写错了 你都没给DropDownlist绑定ID,怎么提取出来 
    this.ddlprovince.DataValueField 这个是绑定数据库中的ID 
    如果你要提取的话 那就是 this.ddlprovince.SelectItem.Value或者是this.ddlprovince.selectedValue 
      

  7.   

    不对,我是在做省份选择的时候  显示的是 省份名,
    插入数据库的是  选择的省份ID 而不是选择的字段 比如广东等等
    源代码: public void bindpro()
        {
            //初始化省
             using (SqlConnection conn = new SqlConnection(str))
                {
                    try
                    { 
                        string selpc = "select province_city from JOB_provinceandcity where fid=0";
                        SqlDataAdapter sda1 = new SqlDataAdapter(selpc, conn);
                        conn.Open();
                        DataSet ds1 = new DataSet();
                        sda1.Fill(ds1);
                        this.ddlprovince.DataSource = ds1;
                        this.ddlprovince.DataTextField = "province_city";
                        this.ddlprovince.DataBind();
                    }
                    catch
                    {
                    }
                 }
        }
     public void insert()
        {
            using (SqlConnection conn = new SqlConnection(str))
            {
                conn.Open();
                int pro = this.ddlprovince.;---就是这个地方我要 pro是选定省在数据库中的ID 怎么做啊....
                string inner = "insert into websen_agent(Province) values('pro')";
                SqlCommand cmd = new SqlCommand(inner, conn);
                cmd.ExecuteNonQuery();
                Response.Write("alert('提交成功!')");
            }
        }
      

  8.   

    int pro = this.ddlprovince.SelectedValue
    前提是你设置了那个下拉框的DataTextField 为数据库中省份的ID
      

  9.   

    按 4楼的方法做啊,绑定的时候要绑定id列:
    this.ddlprovince.DataValueField = "ID的列名"; 提交回服务器的时候这样取到id :
    int id=int.Parse(this.ddlprovince.SelectValue)
      

  10.   

    如果 绑定 DataTextField 为ID的话,那在页面上显示不就是ID 123456了不是广东省.湖南省了吗?
      

  11.   

    写错了要绑定DataTextField 为名称,DataValueField 为ID
      

  12.   

    我倒  这厮好像不知道有DataValueField
      

  13.   

    呵呵
    DataTextField 是显示出来给用户看的
    DataValueField 是后台编码时写入数据库的
    所以你要想把ID写入数据库就必须显示的时候绑定好DataValueField
      

  14.   

    少了this.ddlprovince.DataValueField 
      

  15.   


    在绑定市的时候出错了   public void bindcity()
        {        //根据省份ID初始化市
            using (SqlConnection conn = new SqlConnection(str))
            {
                conn.Open();
                //根据默认省取出ID
                string IDp = "select ID from JOB_provinceandcity where province_city='" + ddlprovince.SelectedValue.Trim() + "'";
                SqlCommand cmd = new SqlCommand(IDp, conn);
                string fid = cmd.ExecuteScalar().ToString();            //DropdownList绑定市
                string city = "select province_city from JOB_provinceandcity where fid=" + fid;
                SqlDataAdapter sda2 = new SqlDataAdapter(city, conn);
                DataSet ds2 = new DataSet();
                sda2.Fill(ds2);
                try
                {
                    if (ds2.Tables[0].Rows.Count > 0)
                    {
                        this.city.Visible = true;
                        ddlcity.DataSource = ds2;
                        ddlcity.DataTextField = "province_city";
                        ddlcity.DataBind();
                    }
                    else
                    {
                        this.ddlcity.Items.Clear();
                        this.ddlcountry.Items.Clear();
                        this.city.Visible = false;
                        this.country.Visible = false;
                    }
                }
                catch
                {
                }
            }
        }
      

  16.   

    楼主,请认真看回复嘛,我觉得应该有回答正确 的 
    有设置text和value属性的 ,你把value设成IDtext设成城市名 然后你点击的时候,选value
      

  17.   

     
    public void bindcity()
        {       //当前选中的省份ID
           int fid =Convert.ToInt32(ddlprovince.SelectedValue);        //根据省份ID初始化市
            using (SqlConnection conn = new SqlConnection(str))
            {            //DropdownList绑定市
                string city = "select id,rovince_city from JOB_provinceandcity where fid=" + fid;
                SqlDataAdapter sda2 = new SqlDataAdapter(city, conn);
                DataSet ds2 = new DataSet();
                sda2.Fill(ds2);
                try
                {
                    if (ds2.Tables[0].Rows.Count > 0)
                    {
                        this.city.Visible = true;
                        ddlcity.DataSource = ds2;
                        ddlcity.DataTextField = "province_city";
                        ddlcity.DataValueField = "id";
                        ddlcity.DataBind();
                    }
                    else
                    {
                        this.ddlcity.Items.Clear();
                        this.ddlcountry.Items.Clear();
                        this.city.Visible = false;
                        this.country.Visible = false;
                    }
                }
                catch
                {
                }
            }
        }
      

  18.   

    注意绑定省份的时候也要把ID取出来,然后设置DataValueField = "id";
      

  19.   

    [Quote=引用楼主 imsasuke 的回复:]
    Dropdownlist怎么获取绑定的数据项的ID啊?
    我的dropdownlist绑定的数据源是查询的数据库中的
    C# codestring selpc="select ID,province_city from JOB_provinceandcity where fid=0";
     SqlDataAdapter sda1=new SqlDataAdapter(selpc, conn);
     conn.Open();
     DataSet ds1=new DataSet();
    sda1.Fill(ds1);this.ddlprovince.DataSource= ds1;this.ddlprovince.DataTextField="province_city";
    ds1;this.ddlprovince.DataValueField="ID";
    this.ddlprovince.DataBind();
      

  20.   

    string mm= ddlprovince.selectedvalue;就可以了呀
      

  21.   

    插入数据库是整形的 
     int pro = int.Parse(this.ddlprovince.SelectedValue);
    为什么出错了啊?
    在将 varchar 值 'pro' 转换成数据类型 int 时失败。
      

  22.   

     查一下 DataValueField  绑定id 
      

  23.   

    加上这句
    ddlprovince.DataValueField = "Id";这个绑定的是ID的值
    也就是你获取的selectedvalue的值
      

  24.   

    楼上的问题已经解决了啊,
    现在的问题是
    string mm= ddlprovince.selectedvalue;插入数据库是整形的 
    int pro = int.Parse(this.ddlprovince.SelectedValue); 
    为什么出错了啊? 
    在将 varchar 值 'pro' 转换成数据类型 int 时失败。 
    怎么办?
      

  25.   

    先看看 
    this.ddlprovince.SelectedValue是什么值?response.write(this.ddlprovince.SelectedValue.ToString()); 
      

  26.   

    DataSet myDs = DBUtility.DBHelper.ExecuteDataSet(DBUtility.DBHelper.ConnectionStringLocalTransaction, strSql);
                if (myDs.Tables[0].Rows.Count == 0)
                {
                    controlName.Items.Add(new ListItem("尚无相关数据", ""));
                }
                else
                {
                    //controlName.Items.Add(new ListItem("请选择...", "0"));
                    for (int i = 0; i < myDs.Tables[0].Rows.Count; i++)
                    {
                        controlName.Items.Add(new ListItem(myDs.Tables[0].Rows[i][fieldName].ToString(), myDs.Tables[0].Rows[i][fieldId].ToString()));
                    }
                }
                myDs.Clear();