2011-05-19 67 views
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的組合框裏面列的任何記錄。

這是我的表單的視圖,當我點擊組合框時,它也沒有顯示任何東西。

enter image description here

我看過很多帖子這個怎麼也沒有有益的我。因爲這一切都向我展示了我做過的同樣的事情。

請幫忙關於我犯了錯誤的地方。

謝謝

+0

你確定有記錄匹配'Metaatt.Status == true'嗎? – 2011-05-19 15:32:05

+0

是的,列表中有4條記錄obj_ma – 2011-05-19 15:57:51

回答

2

啓用DataGridview的行編輯屬性設置爲false。所以它沒有顯示組合框內的數據。