public override void LoadByHeaderDat(IDat header) { SysAuditDat sd = (SysAuditDat)header; sd.Details.DetSet.Clear(); if (sd.Info != null && sd.Info.field != null) { foreach (SysAuditFieldInfo fi in sd.Info.field) { SysAuditDetailsDat sysDet = new SysAuditDetailsDat(); sysDet.Header = sd; sysDet.FieldName = fi.column; if (fi.o != null) { if (fi.o is XmlNode[]) { sysDet.OldValue = ((XmlNode[])fi.o)[0].OuterXml; } } if (fi.n != null) { if (fi.n is XmlNode[]) { sysDet.NewValue = ((XmlNode[])fi.n)[0].OuterXml; } } this.Add(sysDet); } } }
protected virtual void Delete(BaseDat dat) { if (EntityDeleted != null) { EntityDeleted(this, new DatEventArgs(dat)); } else { try { DataGridViewSelectedRowCollection rows = Grid.SelectedRows; if (rows.Count > 1) { if (MessageBox.Show(string.Format("Вы действительно хотите удалить {0} строк?", rows.Count), "Удаление", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { foreach (DataGridViewRow row in rows) { BaseDat dt = row.DataBoundItem as BaseDat; if (dt != null) { IDat idat = dt as IDat; if (idat != null && idat.ID > 0) { dt.Delete(); } } } ReloadList(); } } else if (rows.Count == 1) { //BaseDat dat = rows[0].DataBoundItem as BaseDat; if (dat != null) { if (dat is IDat && ((IDat)dat).ID > 0) { if (MessageBox.Show(string.Format("Вы действительно хотите удалить \r\n{0}?", dat), "Удаление", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { dat.Delete(); ReloadList(); } } else { MessageBox.Show(string.Format("Ветки дерева нужно удалять из дерева."), "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } } catch (Exception exp) { new ExceptionForm("Внимание", "Не удалось удалить элемент.\nДля более подробной информации раскройте детали сообщения об ошибке.", exp, MessageBoxIcon.Error).ShowDialog(); } } }