HACKIS - Hacking Internet Security
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Tuyệt Kỹ Đong Giai Chân Kinh (tuyệt Kỹ cua trai)
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyThu Aug 23, 2012 5:38 am by Admin

» Tuyệt kỹ cua giai
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyThu Aug 23, 2012 5:36 am by Admin

» NETCAT.........
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyMon Aug 13, 2012 6:35 am by Admin

» Bảo mật CSDL bằng phương pháp mã hóa.
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyTue Apr 17, 2012 10:04 pm by Admin

» Hàm mã hóa MD5 bằng JavaScript
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyTue Apr 17, 2012 10:03 pm by Admin

» Giá của món quà
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyFri Apr 13, 2012 6:01 am by Admin

» Sẽ chỉ yêu ai?
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyFri Apr 13, 2012 6:01 am by Admin

» Cách đọc bảng chữ cái!
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyThu Apr 12, 2012 10:37 pm by Admin

» Gắn trojan, keylog, virus vào website, forum
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox EmptyTue Apr 10, 2012 1:14 am by Admin

Affiliates
free forum


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

Go down

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

Post  Admin 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
Admin

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

https://hackis.forumvi.com

Back to top Go down

Back to top

- Similar topics

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