GridControl实现增加,保存,删除
< 1. 增加代码
//备件增加
private void barLargeButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
if (strPkid != "")
{
DataRow drowNow = dstgi_repair_assembly_list.TGI_REPAIR_ASSEMBLY_LIST.NewRow();
drowNow["REPAIR_ORDER_PKID"] = strPkid;
drowNow["PKID"] = NewRandomID();
dstgi_repair_assembly_list.TGI_REPAIR_ASSEMBLY_LIST.Rows.Add(drowNow);
}
else
{
XtraMsgDialog.ShowInfo("请先选择一个工单!");
}
}
catch (Exception ex)
{
// 信息提示
XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
//记录日志
LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
}
}
< 2. 保存代码
//备件保存
private void blbItemSaveSpare_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
dstgi_repair_assembly_list.EndInit();
gvSpare.PostEditor();
gvSpare.FocusedRowHandle = -1;
DataSet dstMain = dstgi_repair_assembly_list.GetChanges();
if (dstMain == null)
{
XtraMsgDialog.ShowWarning("没有数据变化不需要保存!");
return;
}
if (!LengthValPlan())
{
return;
}
DataSet dstDataSet = new DataSet();
if (dstMain != null) dstDataSet.Merge(dstMain);
if (SaveDataRepair(dstDataSet))
{
XtraMsgDialog.ShowInfo("保存成功!");
dstgi_repair_assembly_list.AcceptChanges();
}
}
catch (Exception ex)
{
// 信息提示
XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
//记录日志
LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
}
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="dstChanges"></param>
/// <returns></returns>
public bool SaveDataRepair(DataSet dstChanges)
{
try
{
this.Validate();
if (dstChanges.Tables.Contains("TGI_REPAIR_ASSEMBLY_LIST"))
{
object[] objQuery = { strPkid };
DataSet dstResult = DataSetHelper.BytesToDataSet(EquipmentManageAPI.EquipmentManageService.ExecuteDataSetExt("TGI_REPAIR_ASSEMBLY_LIST", "EquipmentManager.GetTwoRepairCountQuery", objQuery));
foreach (DataRow drow in dstChanges.Tables["TGI_REPAIR_ASSEMBLY_LIST"].Rows)
{
if (drow.RowState == DataRowState.Deleted) continue;
if (drow["ASSEMBLY_NAME"].ToString().Length == 0)
{
XtraMsgDialog.ShowInfo("备件名称不可为空");
return false;
}
if (drow["AMOUNT"].ToString().Length == 0)
{
XtraMsgDialog.ShowInfo("数量不可为空");
return false;
}
if (drow["ASSEMBLY_UNIT"].ToString().Length == 0)
{
XtraMsgDialog.ShowInfo("单位不可为空");
return false;
}
if (drow.GetColumnsInError().Length >= 1) return false;
}
}
if (dstChanges.Tables.Contains("TGI_REPAIR_ASSEMBLY_LIST"))
{
foreach (DataRow drow in dstChanges.Tables["TGI_REPAIR_ASSEMBLY_LIST"].Rows)
{
if (drow.RowState == DataRowState.Deleted) continue;
if (drow["assembly_name"].ToString().Length == 0 || drow["amount"].ToString().Length == 0 || drow["ASSEMBLY_UNIT"].ToString().Length == 0)
{
XtraMsgDialog.ShowInfo("红色必填项不可为空");
return false;
}
}
}
//将修改内容放到一个非类型化的数据集中,以保证可以序列化、传输
byte[] bs = DataSetHelper.DataSetToBytes(dstChanges);
string strResult = BaseDataManageAPI.BaseDataManageService.SaveDataSet(bs);
if (strResult == "true")
{
return true;
}
else
{
XtraMsgDialog.ShowInfo("保存失败!");
return false;
}
}
catch (Exception ex)
{
// 信息提示
XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
//记录日志
LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
}
return true;
}
< 3. 删除代码
/// <summary>
/// 备件删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void blbItemDeleteSpare_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
DataRow drow = gvSpare.GetFocusedDataRow();
if (drow == null) return;
if (drow.RowState == DataRowState.Added) drow.Delete();
else
{
if (XtraMsgDialog.ShowQuestionYesNo("是否确认删除"))
{
drow.Delete();
}
}
}
catch (Exception ex)
{
// 信息提示
XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
//记录日志
LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
}
}
5.最终实现样式