반응형
Grid에서 자주 사용 하는 코드
BindingSource bindingSource = gridControlList_Mtrl_Dtl.DataSource as BindingSource;
DataTable dtSource = bindingSource.DataSource as DataTable;
//DataTable dtResult = (bindingSource.DataSource as DataTable).GetChanges(); //상태가 변경된 것만 조회
if (dtSource == null)
return false;
//삭제된 행의 정보는 볼 수 없기 때문에 삭제된 행만 reject시킨다.
//if (row.RowState == DataRowState.Deleted)
// row.RejectChanges();
foreach (DataRow row in dtSource.Rows)
{
if (row.RowState != DataRowState.Deleted)
{
if (row["MTRL_LOC_GB"].ToString().Equals("MLG_M"))
cnt++;
}
if (row.RowState != DataRowState.Deleted)
{
if (dtSource.Select("MTRL_LOC_CD='" + row["MTRL_LOC_CD"] + "'").Length > 1)
{
MessageManager.ShowMessage(MessageType.Information, "SM0303");//자재위치가 중복되었습니다.
return true;
}
}
}
특정 프레임워크에서... 사용.
그리드 데이터 값과 원본 데이터의 비교.
private void Tab1Grid_BeforeLeaveRow(object sender, DevExpress.XtraGrid.Views.Base.RowAllowEventArgs e)
{
if (e.RowHandle < 0)
return;
//main
string fieldName = string.Empty;
bool changed = false;
if (dtBind1 != null)
{
var bindRow = ((AdvBandedGridView)sender).GetDataRow(e.RowHandle);
int rowIndex = bindRow.Table.Rows.IndexOf(bindRow);
if (bindRow.RowState != DataRowState.Added)
{
DataRow dtOriginal = dtBind1.Rows[rowIndex];
for (int i = 0; i < ((AdvBandedGridView)sender).Columns.Count; i++)
{
fieldName = ((AdvBandedGridView)sender).Columns[i].FieldName;
if (dtOriginal[fieldName].ToString() != bindRow[fieldName].ToString())
changed = true;
}
}
else
{
changed = true;
}
}
}
그리드 상단의 헤더를 숨길 때
advBandedGridView1.OptionsView.ShowColumnHeaders = false;
반응형
'Winform' 카테고리의 다른 글
라벨 멀티라인(Label MultiLIne) (4) | 2016.07.01 |
---|---|
Devexpress Grid print (4) | 2016.05.12 |
Devexpress Grid 행에 색상 넣기 (5) | 2016.05.03 |
DevExpress Repository Item DateEdit (251) | 2016.04.21 |
devexpress mask (4) | 2016.04.14 |
댓글