关闭

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

590人阅读 评论(0) 收藏 举报

一: 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)  编辑  收藏 所属分类: 技术总结

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:391909次
    • 积分:7225
    • 等级:
    • 排名:第3191名
    • 原创:325篇
    • 转载:71篇
    • 译文:1篇
    • 评论:34条
    最新评论