如何在C#中的ComboBox DataSource上添加额外的项目 [英] How to Add Extra items on top of ComboBox DataSource in C#
本文介绍了如何在C#中的ComboBox DataSource上添加额外的项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在设置数据源后在组合框顶部添加一个项目
i使用以下方式,但显示错误
I want to add an item at the top of combobox after setting data source
i use following way,but its showing error
public void fillVehicle()
{
try
{
reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
using (reader)
{
DataTable dt = new DataTable();
dt.Load(reader);
drpVehicle.DataSource = dt;
drpVehicle.ValueMember = "vehicle_No";
drpVehicle.DisplayMember = "vehicle_Name";
}
drpVehicle.Items.Insert(0, "Select Vehicle");
}
catch (Exception ex)
{
lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
}
}
错误显示是
Error showing is
Items collection cannot be modified when the DataSource property is set.
请帮助
Please help
推荐答案
你有一对(或更多)选项:
1.在dt.Load之后,在DataTable的顶部添加一个新行。
You have a couple (or more) options:
1. Add a new row to the top of your DataTable, after dt.Load.
public void fillVehicle()
{
try
{
reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
using (reader)
{
DataTable dt = new DataTable();
dt.Load(reader);
DataRow dr = dt.NewRow();
dr("vehicle_No") = 0;
dr("vehicle_Name") = "Select Vehicle";
dt.Rows.InsertAt(dr, 0);
drpVehicle.DataSource = dt;
drpVehicle.ValueMember = "vehicle_No";
drpVehicle.DisplayMember = "vehicle_Name";
}
drpVehicle.Items.Insert(0, "Select Vehicle");
}
catch (Exception ex)
{
lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
}
}
2.设置drpVehicle.AppendDataBoundItems = true( http://msdn.microsoft.com/en-us/ library / system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx [ ^ ])
2. Set drpVehicle.AppendDataBoundItems = true (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx[^])
public void fillVehicle()
{
drpVehicle.AppendDataBoundItems = true;
drpVehicle.Items.Clear();
drpVehicle.Items.Add(0, "Select Vehicle");
try
{
reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
using (reader)
{
DataTable dt = new DataTable();
dt.Load(reader);
drpVehicle.DataSource = dt;
drpVehicle.ValueMember = "vehicle_No";
drpVehicle.DisplayMember = "vehicle_Name";
}
}
catch (Exception ex)
{
lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
}
}
或者类似的东西。
Or something along those lines.
手动创建数据集并添加将额外项添加到数据源。之后,从绑定数据集中检索数据并复制到创建的数据集。 手动创建数据集。
Manly
Create a dataset manually and add add the extra item to data source. After that retrieve the data from binded dataset and copy to created dataset. Create dataset manually.
Manly
这篇关于如何在C#中的ComboBox DataSource上添加额外的项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文