combobox 绑订数据后displaymember和 valuemember值都显示 谁能帮我

解决方案 »

  1.   

    在一个控件中前面显示id后面显示name
      

  2.   

    用FOR循环生成下拉框的每一项
      

  3.   

    比如 id  name
         1  李四
         2  张三
         3  王五
      

  4.   

    Binding对象有一个Format事件和一个Parse事件,Format事件完成显示内容的格式化,Parse事件反向解析,要使DisplayMember和ValueMember都能显示,在Format事件中处理即可。
      

  5.   

    换一个控件好了,
    WINDOWS控件好像是不能实现了
      

  6.   

    ComboBox自己也有一个Format事件,可以在这个Format事件中控制格式化。
      

  7.   

    MessageBox.Show(combobox.displaymember.ToString());
      

  8.   


    string sqlSelect = "select * from shangpin";
                sda = new SqlDataAdapter(sqlSelect, con);            
                ds = new DataSet();
                sda.Fill(ds,"shangpin");
    this.cboShangpinid.DataSource = ds.Tables["shangpin"];            cboShangpinid.DisplayMember = "shangpinId";
                cboShangpinid.ValueMember = "ShangpinName";
     我想cboshangpinid显示  shangpinId   ShangpinName  
                           1             平过
                              2             平过
                           3             平过
      

  9.   

    ComboBox事件处理方法:cboShangpind_Format(object sender,ListControlConvertEventArgs e)
    {
       DataTable dt=cboShangpin.DataSource;
       string strId=e.Value.ToString();
       DataRow [] drs=dt.Select("shangpinId='"+strId+"'");
       e.Value=strId+"   "+drs[0]["ShangpinName"].ToString();
    }另外,你的DisplayMember与ValueMember设反了。
      

  10.   

    e.Value=strId+"  "+drs[0]["shangpinname"].ToString();
    索引超出了数组界限楼上的在帮帮忙
      

  11.   

       DataRow [] drs=dt.Select("shangpinId='"+strId+"'");
    ------------------------
    这一句这儿设个断点,看看strId的值。
      

  12.   

    DataTable dt=cboShangpin.DataSource; 这个系统报错我换了DataTable dt = db.ReturnDs().Tables[0];但不显示datatable
      

  13.   

    datebase db = new datebase();
                DataTable dt = db.ReturnDs().Tables[0]
      

  14.   

    DataTable dt=cboShangpin.DataSource; 这个系统报错 
    ----------------------------
    DataSource类型为Object,需要转换为DataTable。
    cboShangpind_Format(object sender,ListControlConvertEventArgs e)
    {
       DataTable dt=cboShangpin.DataSource as DataTable;
       if(dt!=null)
       {
          string strId=e.Value.ToString();
          DataRow [] drs=dt.Select("shangpinId='"+strId+"'");
          e.Value=strId+"   "+drs[0]["ShangpinName"].ToString();
       }
    }
      

  15.   

    何必这么麻烦呢??
    在你获取databale那里该sql语句就可以了,比如select a,b,c from dd,如果想Valuemember为a,displaymember为b,那么select a,str(a)+','+str(b) as b from dd,这样不就可以啦??
      

  16.   


    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    if (ds.Tables[0].Columns.Count == 2)
                    {
                        cmb.Items.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + " - " + ds.Tables[0].Rows[i][1].ToString().Trim());
                    }
                    else
                    {
                        cmb.Items.Add(ds.Tables[0].Rows[i][0].ToString().Trim());
                    }
                }
                if (cmb.Items.Count > 0)
                {
                    cmb.SelectedIndex = 0;
                }
      

  17.   

    还只显示shangpinName 不显示 shangpinID dancingbit 帮帮忙 
      

  18.   

    那个,不要设置DisplayMember看看。
      

  19.   

    不好用 我感觉 窗体加载事件绑订数据     Format 改变格式 还应该加点什么吧
      

  20.   

    只显示 shangpinName  楼上实在是 太不好意思 麻烦你那么久
      

  21.   

    private void CaigouDingdanAdd_Load(object sender, EventArgs e)
            {
                
                datebase db = new datebase();
                this.cboShangpinid.DataSource = db.ReturnDs().Tables["shangpin"];
                cboShangpinid.DisplayMember = "shangpinName";
                
            }              
            private void cboShangpinid_Format(object sender, ListControlConvertEventArgs e)
            {
                
                
                DataTable dt = cboShangpinid.DataSource as DataTable;            if (dt != null)
                {
                    string strId = e.Value.ToString();
                    DataRow[] drs = dt.Select("shangpiId='" + strId + "'");
                    e.Value = strId + "  " + drs[0]["shangpinName"].ToString();
                }
            }
      

  22.   

    public class datebase
        {
            string sqlcon="Data Source=.;Initial Catalog=jinxiaocun;Integrated Security=True";        SqlConnection con;
            
            SqlDataAdapter sda;
            
            DataSet ds;
                    public datebase()
            {
                con = new SqlConnection(sqlcon);
                con.Open();
                
            }
           
            
            public DataSet ReturnDs()
            {
                string sqlSelect = "select * from shangpin";
                sda = new SqlDataAdapter(sqlSelect, con);
                
                
                ds = new DataSet();
                sda.Fill(ds,"shangpin");
                return ds;
            
            
            }
      

  23.   

    private void CaigouDingdanAdd_Load(object sender, EventArgs e) 
            { 
                 
                datebase db = new datebase(); 
                this.cboShangpinid.DataSource = db.ReturnDs().Tables["shangpin"]; 
                cboShangpinid.DisplayMember = "shangpinName"; 
                 
            } 
    ------------------------------
    我不是说了,不要设置DisplayMember么?怎么是ValueMember没有了?
      

  24.   

    谢谢dancingbit 无限支持 结帖