如果index和文本是一一对应关系,可以用字典Dictionary<int,string> dic = new Dictionary<int,string>(); dic.Add(1,"a"); dic.Add(2,"b"); foreach(var keyValue in dic) { this.combox.items.add(dic) }// 需要使用时 int index = ((Dictionary<int,string>)this.combox.SelectedItem).Key; string text = ((Dictionary<int,string>)this.combox.SelectedItem).Value;
2、index和value不一样,index是索引,从0开始,按照顺序+1;value是绑定时自己设定的绑定的列的值
3、 this.comboBox1.DataSource = DataTable;//数据源
this.comboBox1.DisplayMember = "xxx";//显示的值,就是text
this.comboBox1.ValueMember = "yyy";//实际的值,就是value
而对应的是“0”和“1”,这是valueindex是说SelectedIndex吧?这是指被选中项的索引。绑定数据库的查询结果看看:http://blog.csdn.net/xianshengsun/article/details/6205302
dic.Add(1,"a");
dic.Add(2,"b");
foreach(var keyValue in dic)
{
this.combox.items.add(dic)
}// 需要使用时
int index = ((Dictionary<int,string>)this.combox.SelectedItem).Key;
string text = ((Dictionary<int,string>)this.combox.SelectedItem).Value;
比如一张员工信息表和部门表,员工信息表有个字段叫做部门编号,类型是int
当我要在界面上的combox显示所有部门的时候,我要绑定两个值,text是用作显示的一个个部门
value值的作用:当我要写入一个新员工的信息的时候,插入到员工表里面的部门编号这一列,我就要获是 value的值
补充一点,text绑定的是部门表的部门名称这一列,value绑定的是部门编号这一列,员工表的部门编号引用部门表的部门编号列。
表:类似这样:2 中国5 美国6 法国
. .
. .
. .现在combo中显示国家名,更加用户选中的国家名,得到对应的主键,更加这个主键值,要到另一个表中查询数据,这个应该怎么实现呢?给combo中的项目添加 text和vaule值?Index为主键值??
this.comboBox1.DataSource = DataTable;//数据源
this.comboBox1.DisplayMember = "xxx";//显示的值,就是text这种操作必须先绑定数据源吗?
我这段代码,执行后combo中没有东西?
SqlDataReader red = cmd.ExecuteReader();
while (red.Read())
{
//comboBox1.Items.Add(red[0].ToString(),red[1].ToString());
comboBox1.DisplayMember = red[1].ToString();
comboBox1.ValueMember = red[0].ToString(); }
red.Close();
应该是this.combox.items.add(keyValue)
combobox.DisplayMember = "字段";--这是text值
combobox.ValueMember = "字段";--这是value值
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
//然后把你想要加的数据加进DataTable 里
dt.Rows.Add(new object[] { "这里对应的是Id(int类型的)", "这里对应Name"});//最后绑定
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";
comboBox1.DataSource = dt;
comboBox1.SelectedValue
就可以获得隐藏的的值了、
根据这个值去做其他的操作
combobox1.Items.add(""), 这个只是text给了值,value的值怎么付呢?combobox1.Items.add("","") 就OK了!
你自己看看代码对了?
combobox1.Items.add("","")
不报错我头砍下来
另外让微软自带的common显示两列不行,你可以要显示的text拼接好了再绑定
例如你要显示 0001:名字 ,那么可以把数据源对应的数据先处理好再绑定
要动态绑定Combox的数据,就要先查数据库,返回一个DataTable然后就写
Combox.DataSource = dt;
Combox.DisplayMember = dt.Rows[0]["Country"].ToString();
Combox.ValueMember = dt.Rows[0]["Id"].ToString();
当你txt和value一样的时候,你感受不到啥。如果你的txt和value不一样的时候;咋整?
比如数据库里面有 ID IDTXT两列
你显示的时候,希望是IDTXT,但是内部做关联的时候,需要用到ID,这个时候value作用就来了。
很懒,不想试,我没这么写过,所以不懂,这样写可以么?value和text指定的是列名把,你把第一列的数据给他们,这样运行对么?row[0]应该是第一行的数据吧?不是列名吧?
combobox.DisplayMember = "字段";--这是text值
combobox.ValueMember = "字段";--这是value值
index和value来说的话不一样,index是索引值,从0开始,顺序依次+1
value是绑定时设定绑定的列的值
this.comboBox1.DataSource = DataTable;//数据源
this.comboBox1.DisplayMember = "vera";//显示的值,就是text
this.comboBox1.ValueMember = "era1";//实际的值,就是value在与数据库绑定时:
DataTable dt = by.GetYear();combobox.DataSource = dt;
combobox.DisplayMember = "字段";--text
combobox.ValueMember = "字段";--value
SqlDataAdapter adapter = new SqlDataAdapter(Sqlstr1, clsMain.Gcon);DataSet data = new DataSet();
comboBox1.Items.Clear();
// 填充数据到DataSet
adapter.Fill(data);
comboBox1.DataSource = data.Tables[0];
comboBox1.DisplayMember = "explain";
comboBox1.ValueMember = "SaTrTypeID"; /////// 给combobox绑定数据源
comboBox1.SelectedIndex = 0;
在comboBox1_SelectedIndexChanged(object sender, EventArgs e) 中想获得用户选中的文本 comboBox1.Text.Trim() 但是取得的值总是:"System.Data.DataRowView"
断点调试发现 在 load_form 时 不执行绑定操作,直接跳到comboBox1_SelectedIndexChanged 函数中。如何comboBox1_SelectedIndexChanged 没有 comboBox1.Text.Trim()操作,则绑定操作可以进行。
comboBox1.DataSource = data.Tables[0];就跳到Indexchanged 中是不是绑定操作执行后,就马上触发了 Indexchanged 操作呢?
this.comboBox1.DisplayMember = "vera";//显示的值,就是text
this.comboBox1.Val……
当我选择a下拉框第一项时 用上班代码给b下拉框绑定数据源,b就有值了;当选择a的第二个选项时,查询出来是空记录,b的下拉框就应该没值了,我怎么把那个绑定数据源清空