如何将空或自定义值添加到绑定组合框?

时间:2009-09-20 00:23:11

标签: .net data-binding combobox

我正在使用System.Windows.Forms.Combobox  绑定到类别表作为搜索条件。当用户不想使用此条件时,我需要有一个值“All”或空字符串。由于组合被绑定,因此每次单击时,combo1.Text =“All”的值都将被删除。显然,我不能将“All”类别添加到数据库中。实现这一目标的最佳方法是什么?

6 个答案:

答案 0 :(得分:5)

  1. 如果您不想将“全部”项添加到数据源中,可以执行以下操作:
  2. 代码段

    comboBox1.Text = "All";
    

    它将comboBox中显示的文本设置为指定的值,但不更改comboBox和绑定数据源中的项目。

    1. 您也可以将“全部”添加到数据源中。但你应该这样做:
    2. 代码段

      private void button1_Click(object sender, EventArgs e)
      
      {
      
      DataRow dataRow = dataTable.NewRow();
      
      dataRow["ItemId"] = "All";
      
      dataTable.Rows.InsertAt(dataRow, 0);
      
      comboBox1.SelectedIndex = 0;
      
      }
      

      最简单的方法是在你的ds.Tables [0]中插入一行

        ds = StockDAL.BindItemId();
      
        DataRow dataRow = ds.Tables[0].NewRow();
      
        dataRow["ItemId"] = "All";
      
        ds.Tables[0].Rows.InsertAt(dataRow, 0);
      
        comboBox1.DataSource = ds.Tables[0];
        comboBox1.DisplayMember = "ItemId";
        comboBox1.ValueMember = "ItemId";
        comboBox1.selectedIndex=0;
      
      希望这能解决你的问题..

答案 1 :(得分:1)

您必须添加其他项目:

ComboBox1.Items.Insert(0,"All");

答案 2 :(得分:1)

在加载其他值后手动将All条目添加到绑定数据集,或取消绑定组合,而是迭代数据以填充它。它只是一个搜索组合,所以你并不需要绑定的所有好处。

答案 3 :(得分:0)

  1. 如果您使用的是sql server,则可以为All选项
  2. 的select命令添加额外的值
  3. 或者您可以使用comboBox1.Items.Insert(0,“All”)添加All选项以将新项目添加为零索引。绑定控件后
  4. 希望这会有所帮助。

答案 4 :(得分:0)

我总是在数据绑定之前“手动”将项添加到数据源。这样可以避免在数据源的查询中出现“人为”数据,因此,如果您将查询用于下拉列表以外的其他内容,则只能获得实际数据。

答案 5 :(得分:0)

你可以试试这个

ComboBox1.Items.Insert(0,"All");

插入表时,只需检查ComboBox1的选定索引 即,

if(ComboBox1.SelectedIndex>0)
{
//do the insert code here
}
else
{
//dont do anything
}

这样可以正常工作......