web-dev-qa-db-ja.com

データベースからデータをバインドする前に、コンボボックスにアイテムを追加します

データベースからデータを取得する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";
    }
}
10
Myworld

次のように、コンボボックスの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;
14
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-->"));
0
user5729776
 CBParent.Insert(0,"Please select Category")
0
JoR

あなたが試すことができる2つの簡単なアプローチがあります(私は今どちらかをテストするのに便利なコンパイラを持っていません):

  1. データをバインドする前に、アイテムをDataTableに追加します。
  2. データをバインドした後、CBParent.Textを「<-カテゴリを選択してください->」に設定するだけで済みます。アイテムをいじることなく、表示されるテキストを設定する必要があります。
0
David