【问题标题】:Problem binding the values in combobox inside the datagridview绑定datagridview内组合框中的值的问题
【发布时间】:2011-05-19 15:24:24
【问题描述】:

我正在开发基于 Windows 的应用程序,在该应用程序中,我需要将 datagridview 内的组合框列与 [Attendance_type] 表中的值绑定。这个datagridview的数据源将来自[Employees table]。

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

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 内的组合框列中显示任何记录。

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

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

请帮忙说明我在哪里做错了。

谢谢

【问题讨论】:

  • 你确定有匹配Metaatt.Status == true的记录吗?
  • 是的,列表 obj_ma 中有 4 条记录

标签: c# windows datagridview


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多