我需要对数据表进行排序并将数据表值加载到组合框中。然后我需要添加一个名为' All'它应该出现在组合框项目的顶部。到目前为止,这是我的工作,
DataTable dt = bLStatus.GetStatusDetail();
if (dt != null && dt.Rows.Count > 0)
{
dt.DefaultView.Sort= "Description ASC";
cmbCurrentStatus.DataSource = dt;
cmbCurrentStatus.ValueMember = "Description";
cmbCurrentStatus.DisplayMember = "Description";
DataRow row = dt.NewRow();
row["Description"] = "All";
dt.Rows.InsertAt(row, 0);
}
问题是排'所有'得到排序,我需要在顶部显示行如何解决这个问题?任何帮助将不胜感激。
答案 0 :(得分:0)
您可以尝试插入"全部"进入第0个索引的组合框。语法如下:
Insert(int insertIndex, object insertItem);
一个例子是:
cmbCurrentStatus.Items.Insert(0, (new myClass { Description = ""}));
SO中的类似帖子:add an item to combobox before bind data from data base
如果它不起作用,请告诉我。
答案 1 :(得分:0)
我回答了我的问题我只需要将Sorted defaultView复制到另一个新数据表,并将“All”行添加到该数据表并将其绑定到组合框。如下所示,
DataTable dt = bLStatus.GetStatusDetail();
if (dt != null && dt.Rows.Count > 0)
{
dt.DefaultView.Sort = "Description ASC";
DataTable dt2 = dt.DefaultView.ToTable();
DataRow row1 = dt2.NewRow();
row1["Description"] = "All";
dt2.Rows.InsertAt(row1, 0);
cmbCurrentStatus.DataSource = dt2;
cmbCurrentStatus.ValueMember = "Description";
cmbCurrentStatus.DisplayMember = "Description";
}