Toon posts:

[C#.net] DataGridViewComboBoxColumn

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik schrijf dus een programma, ik haal data uit een database en daarmee vul ik de datagrid op. In de datagrid moet er ook een "combobox" komen met data van een andere tabel. Het toevoegen van de combobox met die andere data lukt zonder probleem. Maar Als ik dan de value (ID) van de combobox wil wegschrijven, zegt de debugger dat die kolom ni bestaat in de tabel (bindingsource die aan datagrid hangt), zie hieronder code voor het maken van mijn combobox.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
                if (grdQuoteListItems.Columns["MATLISTNRB"] == null)
                {
                    DataGridViewComboBoxColumn cboMaterialList = new DataGridViewComboBoxColumn();
                    cboMaterialList.Name = "MATLISTNRB";
                    cboMaterialList.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton;
                    cboMaterialList.ReadOnly = false;
                    cboMaterialList.DisplayMember = "DESCRIPTION";
                    cboMaterialList.ValueMember = "MATLISTNRB";
                    grdQuoteListItems.Columns.Add(cboMaterialList);
                    //grdQuoteListItems.C
                }
                ((DataGridViewComboBoxColumn)grdQuoteListItems.Columns["MATLISTNRB"]).DataSource = bindMatList.BindingSource.DataSource;


Maar indien ik data uit de combobox wil halen krijg ik dat de "["MATLISTNRB"]" kolom niet bestaat in de bindingsource (tabel).

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            DataTable dtUpdate = (DataTable)bindQuotesDetail.BindingSource.DataSource;
            if (dtUpdate.DataSet.HasChanges())
            {
                foreach (DataRow drRow in dtUpdate.Rows)
                {
                    switch (drRow.RowState)
                    {
                        case DataRowState.Added:
                            //Insert Query opbouwen

                            MessageBox.Show(drRow["MATLISTNRB"].ToString());

                       }
              }
       }


Moet ik nog iets toevoegen zodat ik die kan oproepen en op verder werken ??? Wat doe ik verkeerd ??

Mvg,
Frederic

Ps : Sorry voor mijn warrige taal :p Maar was heel vlug getypt ;) Kben nog totaal niet wakker :p

[ Voor 23% gewijzigd door Verwijderd op 27-04-2007 15:00 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:10

TeeDee

CQB 241

- Plaats even je code tussen [code=c#]..[/code] tags, leest wat makkelijker.
- Wie zegt wat?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
:) Ik heb mijn Post aangepast, zodat ie toch wat duidelijk is :p Ik heb nog nooit zoveel schrijffouten in één post gezien :s lol

  • masterpoi
  • Registratie: Oktober 2004
  • Laatst online: 01-12 17:47
Zit je MATLISTNRB kolom wel in je bindQuotesDetail en niet enkel in je bindMatList?

Verwijderd

Topicstarter
Die zit zeker goed :) Omdat ie in de juiste datagrid wordt getoond .. Maar als ik bij het debuggen dan de tabel opvraag .. Krijg ik alle kolommen buiten die combobox die programmatorisch werd toegevoegd.. Enigste wat ik nu doe is de datasource voor die kolom gelijkstellen aan de Bindmatlist :) Dus hij zit nog altijd goed via "grdQuoteListItems.Columns.Add(cboMaterialList);"

Maar ik weet nie hoe je dan moet zeggen dat ie ook toegevoegd moet worden aan de Bindingsource van de "bindQuotesDetail" zodat ie effectief ook in tabel zit ervan :)

  • masterpoi
  • Registratie: Oktober 2004
  • Laatst online: 01-12 17:47
M.a.w. in je datatable van je bindQuotesDetail zit per default geen kolom "MATLISTNRB"? Dan moet je die ook daar toevoegen hé. DataTable.Columns.Add(....) en niet enkel op je grid.

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 29-11 15:35
Ben zelf ff druk aan het programmeren in C#.NET voor m'n werk dus kan je ff niet helpen, maar hier staat het antwoord wel tussen:

http://msdn2.microsoft.com/en-us/library/e0ywh3cz.aspx

[ Voor 55% gewijzigd door Mastermind op 27-04-2007 15:28 ]

Pagina: 1