在datagridview中绑定组合框中的值时出现问题

时间:2011-05-19 15:24:24

标签: c# windows datagridview

我正在开发基于Windows的应用程序,其中我需要将datagridview中的comboboxcolumns与[Attendance_type]表中的值绑定。此datagridview的数据源将来自[Employees表]。

我目前正在使用此代码执行此操作。

dgvEmployee.Columns.Clear();
                dgvEmployee.AutoGenerateColumns = false;

                DataGridViewTextBoxColumn branchcolumn = new DataGridViewTextBoxColumn();
                branchcolumn.DataPropertyName = "Name";
                branchcolumn.HeaderText = "Employee Name";
                branchcolumn.Name = "Name";
                branchcolumn.Width = 200;
                dgvEmployee.Columns.Add(branchcolumn);

                var metaattend = from Metaatt in dataDC.Metaattend
                                 where Metaatt.Status == true
                                 orderby Metaatt.Metaname
                                 select Metaatt;
                List<Metaattend> obj_ma = new List<Metaattend>();
                obj_ma = metaattend.ToList();

                var Empvar = from Emp in dataDC.Employees
                             join dept in dataDC.Dept on Emp.Deptid equals dept.Id
                             join branch in dataDC.Branch on Emp.Branchid equals branch.Id
                             where Emp.Status == true & Emp.Name.Contains(txtbranch.Text)
                             & (Emp.Deptid == Convert.ToInt64(cmbDept.SelectedValue) | cmbDept.SelectedValue.ToString() == "0")
                             & (Emp.Branchid == Convert.ToInt64(cmbBranch.SelectedValue) | cmbBranch.SelectedValue.ToString() == "0")
                             orderby Emp.Name
                             select new { Emp.Id, Emp.Name };
                DataTable dt_employee = new DataTable();
                using (clsGeneral obj_gen = new clsGeneral())
                {
                    dt_employee = obj_gen.LINQToDataTable(Empvar);
                }
                dgvEmployee.DataSource = dt_employee;


                string[] datemonth = cmbMonth.Text.Split('-');
                int i = DateTime.DaysInMonth(Convert.ToInt32(datemonth[1]), GetMonthNo(datemonth[0]));
                for (int j = 0; j < i; j++)
                {
                    DataGridViewComboBoxColumn daycomboColumn = new DataGridViewComboBoxColumn();
                    daycomboColumn.HeaderText = (j + 1).ToString();
                    daycomboColumn.Width = 50;

                    daycomboColumn.DataSource = obj_ma;
                    daycomboColumn.DisplayMember = "Metaname";
                    daycomboColumn.ValueMember = "Id";
                    dgvEmployee.Columns.Add(daycomboColumn);
                }

使用此代码成功执行,但表单中没有向我显示datagridview中的组合框列中的任何记录。

这是我的表单视图,当我点击组合框时,它也没有显示任何内容。

enter image description here

我见过很多关于此的帖子,但没有一个对我有帮助。因为这一切都向我展示了我所做的一切。

请帮忙解决我在哪里犯了错误。

由于

1 个答案:

答案 0 :(得分:2)

将datagridview的“启用行编辑”属性设置为false。所以它没有在组合框内显示数据。