Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» NewBlueFx TotalFX Windows-FL | 1.11 GB
Tue Dec 17, 2013 12:42 pm by titquarra

» NewBlueFx TotalFX Windows-FL | 1.11 GB
Tue Dec 17, 2013 12:42 pm by titquarra

» Celebrity.Sex.Tape.UNCUT.&.UNRATED.2012.720p.BRrip.x264.YIFY.mp4
Tue Dec 17, 2013 8:32 am by titquarra

» Maya Autodesk Personal Learning Edition 8.5
Tue Dec 17, 2013 7:47 am by titquarra

» Tuyệt Kỹ Đong Giai Chân Kinh (tuyệt Kỹ cua trai)
Thu Aug 23, 2012 5:38 am by Admin

» Tuyệt kỹ cua giai
Thu Aug 23, 2012 5:36 am by Admin

» NETCAT.........
Mon Aug 13, 2012 6:35 am by Admin

» Bảo mật CSDL bằng phương pháp mã hóa.
Tue Apr 17, 2012 10:04 pm by Admin

» Hàm mã hóa MD5 bằng JavaScript
Tue Apr 17, 2012 10:03 pm by Admin

Shopmotion


Affiliates
free forum


Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox

View previous topic View next topic Go down

Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox

Post  Admin on Tue May 17, 2011 11:32 am

Trong datagridview2 mình tạo 1 comboboxcolumn1, và 1 comboboxcolumn2 và 3 cột textboxcolumn tiếp theo

Khi load form lên, comboboxcolumn1 sẽ tự động load danh sách lớp trong trường.
Khi chọn 1 lớp, thì danh sách sinh viên của lớp đó sẽ được load vào comboboxcolumn2
Khi chọn 1 sinh viên, thông tin sinh viên sẽ được load vào 3 cột textboxcolumn còn lại như là id, tên

Tương tự như vậy, khi ta thay đổi giá trị được lựa chọn thì dữ liệu những dòng sau sẽ được thay đổi theo

Hôm nay mình xin viết bài hướng dẫn về vấn đề nêu trên.

Bước 1: Định nghĩ dữ liệu để test. Tạo dữ liệu mẫu

Code:
public class Lop
        {
            public string LopID{get;set;}
            public string TenLop{get;set;}
        }
        public class SV
        {
            public string LopID{get;set;}
            public string MaSV { get; set; }
            public string TenSV{get;set;}           
        }
 Lop[] dsLop;
        SV[] dsSinhVien;
        private void InitData()
        {
            dsLop = new Lop[]
            {
                new Lop{LopID = "L10A", TenLop = "Lop 10A"},
                new Lop{LopID = "L10B", TenLop = "Lop 10B"},
                new Lop{LopID = "L10C", TenLop = "Lop 10C"}
            };
            dsSinhVien = new SV[]
            {
                new SV{LopID="L10A",MaSV="SV1",TenSV="Trinh Hoài Thanh"},
                new SV{LopID="L10A",MaSV="SV2",TenSV="NguyễnMinh Huệ"},
                new SV{LopID="L10A",MaSV="SV3",TenSV="Bắc Giang"},
                new SV{LopID="L10B",MaSV="SV4",TenSV="Sinh vien 1"},
                new SV{LopID="L10B",MaSV="SV5",TenSV="Sinh vien 2"},
                new SV{LopID="L10C",MaSV="SV6",TenSV="Sinh vien lop C"}
            };

        }

B2. Trong sự kiện Load của Form ta cần định dạng các côt, đặc biệt là 2 hộp comboBox đầu tiên

Code:
private void Form2_Load(object sender, EventArgs e)
        {
            InitData();

            dataGridView1.AutoGenerateColumns = false;


            DataGridViewComboBoxColumn cbLop = new DataGridViewComboBoxColumn();
            cbLop.DataSource = dsLop;
            cbLop.DisplayMember = "TenLop";
            cbLop.ValueMember = "LopID";
            cbLop.DataPropertyName = "LopID";
            cbLop.HeaderText = "Mã lớp";
            dataGridView1.Columns.Add(cbLop);

            DataGridViewComboBoxColumn cboMaSV = new DataGridViewComboBoxColumn();
            cboMaSV.HeaderText = "Mã SV";
            dataGridView1.Columns.Add(cboMaSV);

            DataGridViewTextBoxColumn tenSV = new DataGridViewTextBoxColumn();
            tenSV.HeaderText = "Tên SV";
            dataGridView1.Columns.Add(tenSV);

            dataGridView1.DataSource = dsSinhVien;           
        }

B3. Khi giá trí của hộp comboBox thay đổi, bạn bắt các sự kiện

Code:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            int currentRow = e.RowIndex;
            int currentCol = e.ColumnIndex;
           
            if (currentCol == 0)//chon ma lop
            {
                DataGridViewComboBoxCell cellMaLop= (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol];
                DataGridViewComboBoxCell cellMaSV = (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol 1];//vi cột MASV nằm phía tay phải cột MaLop
                //Lay gia tri hien tại
                string maLop = cellMaLop.Value.ToString();

                cellMaSV.Items.Clear();
                List<SV> lst = new List<SV>();
                foreach (SV s in dsSinhVien)
                    if (s.LopID == maLop)
                        lst.Add(s);
                foreach (SV s in lst)
                    cellMaSV.Items.Add(s.MaSV);

                return;
            }
            else if (currentCol == 1)//chon ma sv
            {               
                DataGridViewComboBoxCell cellMaSV = (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol];
                DataGridViewTextBoxCell cellTenSV = (DataGridViewTextBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol 1];//vi cột TenSV nằm phía tay phải cột MaSV
                //Lay gia tri hien tại
                string maSV = cellMaSV.Value.ToString();
                cellTenSV.Value="";
                foreach (SV s in dsSinhVien)
                    if (s.MaSV == maSV)
                    {
                        cellTenSV.Value = s.TenSV;
                        break;
                    }
                return;
            }

        }

Admin
Admin

Tổng số bài gửi : 782
Join date : 2009-08-15

View user profile http://hackis.forumotion.com

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum