Click here to Skip to main content
15,867,488 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
i have a gridview which has 2 combobox columns the first one is Product group(cmbGridProGrp) which is populated from the database and i want the second combobox(cmbGridProduct) which contains products to be populated from the database based on the first combobox(cmbGridProGrp) selected value.

problem: it seems that in a combobox column inside a grid there is no selectedvalue property!!
i mean there is no "cmbGridProGrp.selectedValue"

C#
void initProGrp()
        {
            var result = (from item in dx.tbl_ProGroups
                          orderby item.Name
                          select item);
            cmbGridProGrp.DataSource = result;
            foreach (var item in result)
            {
                cmbGridProGrp.DisplayMember = "Name";
                cmbGridProGrp.ValueMember = "ID";
            }
        }

        void initProduct()
        {
            try
            {
                var Products = (from item in dx.tbl_Products
                                where item.GroupID.Equals(selectedValue from cmbGridProGrp)
                                orderby item.Name
                                select item);
                foreach (var item in Products)
                {
                    cmbGridProduct.DataSource = Products;
                    cmbGridProduct.DisplayMember = "Name";
                    cmbGridProduct.ValueMember = "ID";
                }
            }
            catch
            {
                return;
            }
        }
Posted
Comments
CHill60 21-Mar-13 14:36pm    
True but you could use
DataGridViewComboBoxCell cell = row.Cells[0] as DataGridViewComboBoxCell;
if(cell != null && cell.Value != null)
// what ever you want to do with the selection

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900