public partial class BaseForm : Form
{
protected BonusDataContext mydc;//DataContext对象
protected bool IsModify=false;//修改标记
public BaseForm()
{
InitializeComponent();
}
/**//// <summary>
/// 数据绑定虚方法
/// </summary>
protected virtual void GridBind()
{
}
/**//// <summary>
/// 退出按钮处理事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected virtual void tsbtnExit_Click(object sender, EventArgs e)
{
if (IsModify)
{
DialogResult result = MessageBox.Show("有修改的数据未保存,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
dgvData.CommitEdit(DataGridViewDataErrorContexts.Commit);
mydc.SubmitChanges();
this.Close();
}
else if (result == DialogResult.No)
{
this.Close();
mydc.Dispose();
}
}
else
{
this.Close();
mydc.Dispose();
}
GC.Collect();
}
//新增数据
protected virtual void tsbtnAdd_Click(object sender, EventArgs e)
{
dgvData.CurrentCell = dgvData[1, dgvData.Rows.Count - 1];
}
//保存数据
protected virtual void tsbtnSave_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
try
{
dgvData.CommitEdit(DataGridViewDataErrorContexts.Commit);
mydc.SubmitChanges();
IsModify = false;
}
catch (DuplicateKeyException)
{
MessageBox.Show("提交数据存在重复数据,保存失败");
}
}
}
//刷新数据,回归到编辑前状态
protected virtual void tsbtnRefresh_Click(object sender, EventArgs e)
{
IsModify = false;
mydc = new BonusDataContext();
GridBind();
}
//删除数据
protected virtual void tsbtnDel_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("删除的数据无法恢复,是否删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
dgvData.CommitEdit(DataGridViewDataErrorContexts.Commit);
for (int i = 0; i < dgvData.Rows.Count; i++)
{
if (dgvData["colSelect", i].Value != null)
{
if (dgvData["colSelect", i].Value.ToString() == "1")
{
dgvData.Rows.Remove(dgvData.Rows);
}
}
}
mydc.SubmitChanges();
}
}
//取消当前编辑数据
protected virtual void tsbtnCancel_Click(object sender, EventArgs e)
{
dgvData.CancelEdit();
}
protected virtual void dgvData_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
IsModify = true;
}
}