C#中Combox的绑定总结

  刚来实习,经理让修改一个考试系统,看到以前的老前辈的代码,感觉和自己以前在学校接触的不一样,特此总结一下Combox的绑定,虽然这个问题都是老生常谈的东西了。感觉自己总结过了,明白了,反思了才会懂得,理解,以后也会运用自如了。

1,下面是前辈的例子,

首先从数据库中得到ds数据集

然后进行循环绑定添加items项

foreach(DataRow dr in ds.Tables[0].Rows)
     {                   
         this.comb_type.Items.Add(new ControlItem(dr,dr["answertypename"].ToString()));                   
     }
this.comb_type.SelectedIndex =0;

2,自己在学校学习的是绑定dt数据表或ds数据集。这样就不用循环添加items项了,感觉代码简练了很多。

this.comb_type.DataSource = dt;//也可以用ds,此处就是ds.Tables[0];

this.comb_type.DisplayMember = "answertypename"; //绑定显示成员的名字

this.com_answertype.ValueMember = "answertypeID";//绑定combox显示成员的值
this.com_answertype.SelectedValue = "0";//让combox固定显示某个成员名字。

3,可以设置combox的DisplayMember,ValueMemeber

ValueMemeber 是combox的值成员,而DisplayMember是combox的显示成员。

控件属性设置和代码中设置功能是一样的。

4,绑定datasourse后,怎么样让combox添加一项“请选择”
在asp中直接一句话:

this.DropDownList1.Items.Insert(0,new   ListItem( "请选择 ", "0 "));

但在winform中,绑定datasourse后就不能简单实现添加“请选择”项了。

可以用下面的两种方法实现

(1)首先获得dt  //或者ds

DataRow dr = ds.Tables[0].NewRow();
dr[0] = "0 ";
dr[1] = "请选择 ";
ds.Tables[0].Rows.InsertAt(dr, 0);

this.com_answertype.DataSource = ds.Tables[0];
this.com_answertype.DisplayMember = "answertypename";
this.com_answertype.ValueMember = "answertypeID";
this.com_answertype.SelectedValue = "0"; //在此处选择0值,即可显示请选择。

(2)在数据库中直接添加一项“请选择”,然后绑定dt或ds,在选择要显示的项即可。

posted on 2011-12-26 15:35  清风拂过  阅读(17451)  评论(0编辑  收藏  举报