private void checkQuyenThaotac_ItemCheck(object sender, ItemCheckEventArgs e) { cChucNang item = checkQuyenThaotac.Items[e.Index] as cChucNang; if (e.NewValue == CheckState.Checked) { item.IsYes = true; } else if (e.NewValue == CheckState.Unchecked) { item.IsYes = false; } }
private void SetQuyenThaotac(DataTable tableChucnang) { // lấy dataSource danh sách chức năng, set default false nếu ko có row nào if (tableChucnang == null || tableChucnang.Rows.Count == 0) { for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang chucnang = checkQuyenThaotac.Items[i] as cChucNang; if (chucnang == null) { continue; } checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked); chucnang.IsYes = false; } } else // tồn tại chức năng //duyệt từng chức năng trong danh sách chức năng, kiểm tra xem chức năng đó có trong csdl table ko? nếu có thì check, ko thì uncheck { for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang chucnang = checkQuyenThaotac.Items[i] as cChucNang; if (chucnang == null) { continue; } int id = chucnang.ID; DataRow[] arrRows = tableChucnang.Select("MenuID = " + id, "MenuID asc"); // tìm trong table chức năng đó bật hay tắt, if (arrRows.Length == 0) // ko tồn tại phân quyền --> uncheck { checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked); chucnang.IsYes = false; } else // tồn tại phân quyền -->? kiểm tra xem nó có enable ko { bool isYes = (bool)arrRows[0]["IsYes"]; checkQuyenThaotac.SetItemCheckState(i, (isYes) ? CheckState.Checked : CheckState.Unchecked); chucnang.IsYes = isYes; } } } checkQuyenThaotac.Update(); }
private void UpdateQuyenThaotac(DataTable tableChucnang) { // lấy dataSource danh sách chức năng, set default false nếu ko có row nào if (tableChucnang == null || tableChucnang.Rows.Count == 0) { for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang chucnang = checkQuyenThaotac.Items[i] as cChucNang; if (chucnang == null) { continue; } checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked); chucnang.IsYes = false; } } else // tồn tại chức năng { for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { //checkQuyenThaotac.g checkQuyenThaotac.GetItemCheckState(i); cChucNang chucnang = checkQuyenThaotac.Items[i] as cChucNang; if (chucnang == null) { continue; } int id = chucnang.ID; DataRow[] arrRows = tableChucnang.Select("MenuID = " + id, "MenuID asc"); // tìm trong table chức năng đó bật hay tắt, if (arrRows.Length == 0) { checkQuyenThaotac.SetItemCheckState(i, CheckState.Unchecked); chucnang.IsYes = false; } else { bool temp = (bool)arrRows[0]["IsYes"]; checkQuyenThaotac.SetItemCheckState(i, (temp == true) ? CheckState.Checked : CheckState.Unchecked); chucnang.IsYes = temp; } } } checkQuyenThaotac.Update(); }
private void button1_Click(object sender, EventArgs e) { log4net.ILog a = LogManager.GetLogger(""); // lấy ID tài khoản đang chọn DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView; int userid = (int)rowView["UserID"]; // update phòng ban thao tác List <int> id = new List <int>(); List <int> status = new List <int>(); DuyetLayID_Status(treePhongban.TopNode, id, status); for (int i = 0; i < id.Count; i++) { int n = SqlDataAccessHelper.ExecNoneQueryString( " update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID" + " IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, status[i], id[i] }); Debug.WriteLine(n); } List <cChucNang> lstchucnang = checkQuyenThaotac.DataSource as List <cChucNang>; for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang item = checkQuyenThaotac.Items[i] as cChucNang; bool check = item.IsYes; int menuid = item.ID; int n = SqlDataAccessHelper.ExecNoneQueryString( " update MenuPrivilege set IsYes = @IsYes where UserID = @UserID and MenuID = @MenuID " + " IF @@ROWCOUNT=0 INSERT INTO MenuPrivilege (UserID,MenuID,IsYes) VALUES (@UserID,@MenuID,@IsYes) " , new string[] { "@UserID", "@IsYes", "@MenuID" } , new object[] { userid, check, menuid }); Debug.WriteLine(n); } lstTaikhoan_SelectedValueChanged(lstTaikhoan, null); }
private void btnCapNhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // lấy ID tài khoản đang chọn DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView; int userid = (int)rowView["UserID"]; // update phòng ban thao tác và status cho phép hay ko #region lấy ds phòng ban 1. được thao tác, 2.check kết công List <cPhongBan> dsphongbanChecked = new List <cPhongBan>(); List <cPhongBan> dsphongbanUnCheck = new List <cPhongBan>(); // đưa về root node trước khi thực hiện var root = treePhongBan.TopNode; GetTopLevelNode(ref root); // mỗi lần duyệt node sẽ làm root node chuyển về parent của node cuối nên phải trả về node gốc để duyệt từ đầu while (root.PrevNode != null) { root = root.PrevNode; } GetNode_DuocThaotac_CheckKetcong(root, dsphongbanChecked, dsphongbanUnCheck); #endregion // duyệt qua từng phòng ban và update lại phòng ban đó được cho phép hay ko for (int i = 0; i < dsphongbanChecked.Count; i++) { SqlDataAccessHelper.ExecNoneQueryString( @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, 1, dsphongbanChecked[i].ID }); } for (int i = 0; i < dsphongbanUnCheck.Count; i++) { SqlDataAccessHelper.ExecNoneQueryString( @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, 0, dsphongbanUnCheck[i].ID }); } //duyệt từng chức năng và update lại cho phép hay ko cho phép chức năng đó List <cChucNang> lstchucnang = checkQuyenThaotac.DataSource as List <cChucNang>; for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang item = checkQuyenThaotac.Items[i] as cChucNang; bool check = item.IsYes; int menuid = item.ID; SqlDataAccessHelper.ExecNoneQueryString( @" update MenuPrivilege set IsYes = @IsYes where UserID = @UserID and MenuID = @MenuID IF @@ROWCOUNT=0 INSERT INTO MenuPrivilege (UserID,MenuID,IsYes) VALUES (@UserID,@MenuID,@IsYes) " , new string[] { "@UserID", "@IsYes", "@MenuID" } , new object[] { userid, check, menuid }); } ACMessageBox.Show("Cập nhật phân quyền thành công.", "Thông báo", 2000); point1: lstTaikhoan_SelectedValueChanged(lstTaikhoan, null); }
private void btnCapNhat_Click(object sender, EventArgs e) { // lấy ID tài khoản đang chọn DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView; int userid = (int)rowView["UserID"]; // update phòng ban thao tác và status cho phép hay ko List <int> id = new List <int>(); List <int> status = new List <int>(); DuyetLayID_Status(treePhongban.TopNode, id, status); bool flag = false; int n; // duyệt qua từng phòng ban và update lại phòng ban đó được cho phép hay ko for (int i = 0; i < id.Count; i++) { n = SqlDataAccessHelper.ExecNoneQueryString( " update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID" + " IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, status[i], id[i] }); if (n == 0) // nếu xảy ra lỗi thì thoát khỏi vòng lặp { flag = true; break; } } if (flag) { MessageBox.Show("Xảy ra lỗi trong quá trình thực hiện. Vui lòng thử lại.", "Lỗi"); goto point1; } //duyệt từng chức năng và update lại cho phép hay ko cho phép chức năng đó List <cChucNang> lstchucnang = checkQuyenThaotac.DataSource as List <cChucNang>; for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { cChucNang item = checkQuyenThaotac.Items[i] as cChucNang; bool check = item.IsYes; int menuid = item.ID; n = SqlDataAccessHelper.ExecNoneQueryString( " update MenuPrivilege set IsYes = @IsYes where UserID = @UserID and MenuID = @MenuID " + " IF @@ROWCOUNT=0 INSERT INTO MenuPrivilege (UserID,MenuID,IsYes) VALUES (@UserID,@MenuID,@IsYes) " , new string[] { "@UserID", "@IsYes", "@MenuID" } , new object[] { userid, check, menuid }); if (n == 0) // nếu xảy ra lỗi thì thoát khỏi vòng lặp { flag = true; break; } } if (flag) { MessageBox.Show("Xảy ra lỗi trong quá trình thực hiện. Vui lòng thử lại.", "Lỗi"); goto point1; } AutoClosingMessageBox.Show("Cập nhật phân quyền thành công.", "Thông báo", 2000); point1: lstTaikhoan_SelectedValueChanged(lstTaikhoan, null); }