データベースからデータを取得するWindowsフォームフォームのコンボボックスがありました。これはうまくいきましたが、データベースのデータの前に最初の項目<-カテゴリを選択してください->を追加したいと思います。どうやってやるの?そして、どこに置くことができますか?
public Category()
{
InitializeComponent();
CategoryParent();
}
private void CategoryParent()
{
using (SqlConnection Con = GetConnection())
{
SqlDataAdapter da = new SqlDataAdapter("Select Category.Category, Category.Id from Category", Con);
DataTable dt = new DataTable();
da.Fill(dt);
CBParent.DataSource = dt;
CBParent.DisplayMember = "Category";
CBParent.ValueMember = "Id";
}
}
次のように、コンボボックスのText
プロパティにデフォルトのテキストを追加することができます(推奨)。
CBParent.Text = "<-Please select Category->";
または、データテーブルに値を直接追加することもできます。
da.Fill(dt);
DataRow row = dt.NewRow();
row["Category"] = "<-Please select Category->";
dt.Rows.InsertAt(row, 0);
CBParent.DataSource = dt;
public class ComboboxItem
{
public object ID { get; set; }
public string Name { get; set; }
}
public static List<ComboboxItem> getReligions()
{
try
{
List<ComboboxItem> Ilist = new List<ComboboxItem>();
var query = from c in service.Religions.ToList() select c;
foreach (var q in query)
{
ComboboxItem item = new ComboboxItem();
item.ID = q.Id;
item.Name = q.Name;
Ilist.Add(item);
}
ComboboxItem itemSelect = new ComboboxItem();
itemSelect.ID = "0";
itemSelect.Name = "<Select Religion>";
Ilist.Insert(0, itemSelect);
return Ilist;
}
catch (Exception ex)
{
return null;
}
}
ddlcombobox.datasourec = getReligions();
データをバインドした後、"Please select"
を追加する必要があります。
var query = from name in context.Version
join service in context.Service
on name.ServiceId equals service.Id
where name.VersionId == Id
select new
{
service.Name
};
ddlService.DataSource = query.ToList();
ddlService.DataTextField = "Name";
ddlService.DataBind();
ddlService.Items.Insert(0, new ListItem("<--Please select-->"));
CBParent.Insert(0,"Please select Category")
あなたが試すことができる2つの簡単なアプローチがあります(私は今どちらかをテストするのに便利なコンパイラを持っていません):
DataTable
に追加します。CBParent.Text
を「<-カテゴリを選択してください->」に設定するだけで済みます。アイテムをいじることなく、表示されるテキストを設定する必要があります。