【发布时间】:2010-11-29 19:29:34
【问题描述】:
我正在使用 System.Windows.Forms.Combobox 绑定到类别表作为搜索条件。我需要有一个值“All”或空字符串,当用户不想使用此条件时将选择它。由于combo是绑定的,每次点击,combo1.Text =“All”添加的值都会被删除。显然,我不能将“全部”类别添加到数据库中。实现这一目标的最佳方法是什么?
【问题讨论】:
标签: .net data-binding combobox
我正在使用 System.Windows.Forms.Combobox 绑定到类别表作为搜索条件。我需要有一个值“All”或空字符串,当用户不想使用此条件时将选择它。由于combo是绑定的,每次点击,combo1.Text =“All”添加的值都会被删除。显然,我不能将“全部”类别添加到数据库中。实现这一目标的最佳方法是什么?
【问题讨论】:
标签: .net data-binding combobox
代码片段
comboBox1.Text = "All";
它将组合框中显示的文本设置为分配的值,但不更改组合框中的项目和绑定的数据源。
代码片段
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;
希望这能解决你的问题..
【讨论】:
在加载其他值后手动将 All 条目添加到绑定的数据集,或者取消绑定组合并迭代数据以填充它。它只是一个搜索组合,因此您并不真正需要绑定的所有好处。
【讨论】:
您必须添加另一个项目:
ComboBox1.Items.Insert(0,"All");
【讨论】:
希望这会有所帮助。
【讨论】:
我总是在数据绑定之前“手动”将项目添加到数据源。这样可以避免在数据源的查询中包含“人工”数据,因此如果您将查询用于下拉菜单以外的其他内容,则只能获得真实数据。
【讨论】:
你可以试试这个
ComboBox1.Items.Insert(0,"All");
在插入表格时,您只需检查 ComboBox1 的选定索引 即,
if(ComboBox1.SelectedIndex>0)
{
//do the insert code here
}
else
{
//dont do anything
}
这会很好......
【讨论】: