반응형

//데이터 바인딩 후 AcceptChanges()를 해줘야 이후 State 값들을 알 수 있다.

DataTable dtPartList = GetWorkStandardPartListInfo();
grd_MAIN.DataSource = dtPartList;
(grd_MAIN.DataSource as DataTable).AcceptChanges();

 

//로우 삭제 (Remove 사용할 시 완전히 삭제 되기 때문에 Delete()를 사용)

Row.Delete();

 

//바뀐 데이터들을 가져와 상태 값별로 처리하는 로직

IEnumerable DataList_Sub = GridData_Main.AsEnumerable().Where(d => d.RowState != DataRowState.Unchanged);
foreach (var rowData in DataList_Sub)
{
if (rowData.RowState.Equals(DataRowState.Added) || rowData.RowState.Equals(DataRowState.Modified))
{
dtDetail.Rows.Add(
MITUtil.GetStringTrim(bte_MODEL_NO.EditValue),
MITUtil.GetStringTrim(bte_PRODUCT_NO.EditValue),
MITUtil.GetStringTrim(cbo_REV_NO.EditValue, "0"),
rowData["GROUP_NO"],
rowData["PART_NO"],
rowData["ITEM_NO"],
rowData["ITEM_QTY"],
rowData["REMARK"],
rowData["OPTION_SPEC"],
rowData["INSPECT_SPEC1"],
rowData["INSPECT_SPEC2"],
rowData["INSPECT_SPEC3"],
UserInfo.UserID,
UserInfo.UserID
);
}
else if (rowData.RowState.Equals(DataRowState.Deleted))
{
dtDeleteDetail.Rows.Add(
rowData["MODEL_NO", DataRowVersion.Original],
rowData["PRODUCT_NO", DataRowVersion.Original],
rowData["REV_NO", DataRowVersion.Original],
rowData["GROUP_NO", DataRowVersion.Original],
rowData["PART_NO", DataRowVersion.Original]
);
}
}

반응형

'C# > basic' 카테고리의 다른 글

C# 소수점 반올림  (0) 2018.04.26
C# DataTable 사용법  (0) 2018.04.26
C# json 데이터 변환  (0) 2018.04.26