ComboBox 经验总结[动态绑定数据之后,静态添加一条数据]

一: ComboBox  经验总结[动态绑定数据之后,静态添加一条数据]

  DropDowStyle=DropDown       允许用户键入列表项的文本框,为默认值
  DropDownSysle=DropDownList  显示一个项列表,用户可从中选择一项

A: 在属性 Iitems 添加项

   CobShow.SelectedIndex          选择项的索引
   CobShow.SelectedItem            选择项的文本
   CobShow.SelectText                空值
   CobShow.SelectValue              报错...
   CobShow.Items[CobShow.SelectedIndex].ToString()  选择项的文本

B:在程序中添加 CobShow.Item.Add() 结果和上面一样
  
C: A B  两种方式同时添加          结果和上面一样

D:动态绑定数据

   CobShow.SelectedIndex          选择项的索引
   CobShow.SelectedItem            System.DataRow.DefaultView
   CobShow.SelectText               空值
   CobShow.SelectValue             选择项的 VALUE 值
   CobShow.Text                        选择项的 文本 值
   CobShow.Items[CobShow.SelectedIndex].ToString()  System.DataRow.DefaultView

E: 如果先通过属性或者程序 写入了值之后,动态绑定的时候 会清空原来的值

F: 如果动态绑定数据之后,在通过程序 CobShow.Item.Add('zhi'); 报错...[解决办法如下]
 
  FSubject 是要显示的文本,FTech 是要传递的值

         DataTable dt = cboShow.DataSource as DataTable;
         DataRow dr = dt.NewRow();

         dr["FSubject"] = "---Text---";
         dr["FTech"]="---Value---";

         dt.Rows.InsertAt(dr, 0); 插入到第一行
         dt.Rows.Add(dr); 追加到最后一行

 解释: dr["FSubject"],dr["FTech"] 是一行中的2列,赋值之后就完整的添加一行
       CobShow.Text="---Text---",CobShow.SelectValue="---Value---"

posted on 2007-06-14 14:15 天山寒雪 阅读(381) 评论(1)   编辑   收藏 所属分类: 技术总结
<script type="text/javascript"> // </script>

FeedBack:
#  re: [★]ComboBox 经验总结[动态绑定数据之后,静态添加一条数据]
2007-07-03 16:34 | 天山寒雪
DataTable dt = ds.Tables[0];
DataRow dr = dt.NewRow();
dr["A"] = "0";
dr["B"] = "请选择";
dt.Rows.InsertAt(dr, 0);


cboshow.DataSource = ds.Tables[0]; // 这个时候会触发事件
cboshow.DisplayMember = "B"; // 这个时候也会触发事件
cboshow.ValueMember = "A";


// 以上不愧是一个非常好的方法,但是当数据库中有多行的时候,也要一个一个赋值吗?

//下面继续讨论,假如cboShow 有事件 selectIndexchange 赋值的时候 会不会触发事件呢 ?

//为什么要讨论的时候,因为我们有的时候需要在加载的时候不触发事件,而是选择的时候触发事件,

//从上面可以看到DataSource,DisplayMember 的时候都会触发一次 事件,以后都不会触发

//此时SelectedValue 一直为 System.Data.DataRowView;;直接在 事件中判断 selectvalue 的值...

if (cboshow.SelectedValue.ToString() != "System.Data.DataRowView")
{
string cc = "111";


}
//[2]
//if (cboshow.Text != "System.Data.DataRowView")
//{
// MessageBox.Show("123");
//}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值