1
我正在開發基於窗口的應用程序,其中我需要綁定datagridview內的組合列與來自[Attendance_type]表中的值。這個datagridview的數據源將來自[Employees table]。問題綁定在datagridview內的組合框中的值
我正在使用此代碼執行此操作。
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'嗎? – 2011-05-19 15:32:05
是的,列表中有4條記錄obj_ma – 2011-05-19 15:57:51