none
下拉框中的第一个值是空的,如何才能清除?请看清正文在回答好吗? RRS feed

  • 问题

  •  下拉框.DataSource = DataTable;
     下拉框.DisplayMember = "WorkerName";
    下拉框.ValueMember = "WorkerID";

    在后台是这么绑定的,但是第一值是空的,如何清除者个空值?下拉框.Items.RemoveAt(0)不能用,提示在下拉框用DataSource绑定后内容不能改变

    2010年5月25日 6:39

答案

  • 或者使用 BindingSource 的方法绑定,同时过滤掉包含空字符串的行。如下

    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));// 当前节点ID
    dt.Columns.Add("Name", typeof(string));// 节点名称
    
    dt.Rows.Add(new object[] { 1, "" });
    dt.Rows.Add(new object[] { 2, "四川" });
    dt.Rows.Add(new object[] { 3, "成都" });
    dt.Rows.Add(new object[] { 3, "绵阳" });
    dt.Rows.Add(new object[] { 4, "重庆" });
    
    //this.comboBox1.DataSource = dt;
    //this.comboBox1.DisplayMember = "Name";
    //this.comboBox1.ValueMember = "Id";
    
    BindingSource bs = new BindingSource(dt, null);
    bs.Filter = "Name <> ''";
    this.comboBox1.DataSource = bs;
    this.comboBox1.DisplayMember = "Name";
    this.comboBox1.ValueMember = "Id";


    知识改变命运,奋斗成就人生!
    • 已标记为答案 YellowSky 2010年5月26日 0:55
    2010年5月25日 6:59
    版主

全部回复

  • 你好!

    在将数据源中的空值删除掉后再绑定。


    知识改变命运,奋斗成就人生!
    2010年5月25日 6:45
    版主
  • 或者使用 BindingSource 的方法绑定,同时过滤掉包含空字符串的行。如下

    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));// 当前节点ID
    dt.Columns.Add("Name", typeof(string));// 节点名称
    
    dt.Rows.Add(new object[] { 1, "" });
    dt.Rows.Add(new object[] { 2, "四川" });
    dt.Rows.Add(new object[] { 3, "成都" });
    dt.Rows.Add(new object[] { 3, "绵阳" });
    dt.Rows.Add(new object[] { 4, "重庆" });
    
    //this.comboBox1.DataSource = dt;
    //this.comboBox1.DisplayMember = "Name";
    //this.comboBox1.ValueMember = "Id";
    
    BindingSource bs = new BindingSource(dt, null);
    bs.Filter = "Name <> ''";
    this.comboBox1.DataSource = bs;
    this.comboBox1.DisplayMember = "Name";
    this.comboBox1.ValueMember = "Id";


    知识改变命运,奋斗成就人生!
    • 已标记为答案 YellowSky 2010年5月26日 0:55
    2010年5月25日 6:59
    版主
  • 试试

    if(cb.Items.Count > 0) cb.SelectedIndex = 0;


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月25日 8:49