본문 바로가기
Winform

Devexpress Grid에서 자주 사용하는 코드

by 캡틴노랑이 2016. 5. 3.
반응형

Grid에서 자주 사용 하는 코드

 
 
그리드에서 DataTable 가져와서 상태 값 체크(삭제된 데이터도 있음)
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)  (0) 2016.07.01
Devexpress Grid print  (0) 2016.05.12
Devexpress Grid 행에 색상 넣기  (0) 2016.05.03
DevExpress Repository Item DateEdit  (0) 2016.04.21
devexpress mask  (0) 2016.04.14

댓글