我正在使用System.Windows.Forms.Combobox 绑定到类别表作为搜索条件。当用户不想使用此条件时,我需要有一个值“All”或空字符串。由于组合被绑定,因此每次单击时,combo1.Text =“All”的值都将被删除。显然,我不能将“All”类别添加到数据库中。实现这一目标的最佳方法是什么?
答案 0 :(得分:5)
代码段
comboBox1.Text = "All";
它将comboBox中显示的文本设置为指定的值,但不更改comboBox和绑定数据源中的项目。
代码段
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)
希望这会有所帮助。
答案 4 :(得分:0)
我总是在数据绑定之前“手动”将项添加到数据源。这样可以避免在数据源的查询中出现“人为”数据,因此,如果您将查询用于下拉列表以外的其他内容,则只能获得实际数据。
答案 5 :(得分:0)
你可以试试这个
ComboBox1.Items.Insert(0,"All");
插入表时,只需检查ComboBox1的选定索引 即,
if(ComboBox1.SelectedIndex>0)
{
//do the insert code here
}
else
{
//dont do anything
}
这样可以正常工作......