IT정보공유/C#

C# 데브익스프레스(DevExpress) TreeList DB에서 불러오기

알지오™ 2019. 11. 14.

데브익스프레스(DevExpress) 컴포넌트를 사용하여 아래와 같은 형태의 트리를 만들건데, 
데이터베이스에서 읽은 데이터테이블을 기준으로 루프 돌면서 루트트리노드와 차일드트리노드 등을
생성하는 샘플 코드 입니다.

 

// - 공원장비
//   - 경마공원
//     - 대관람차
//	   - 바이킹
//	   - 죠스
//   - 서울대공원
//     - 다람쥐통
//	   - 범퍼카

 

DevExpress.XtraTreeList 컨트롤의 name은 trEquip 입니다.
별도의 UI 옵션 조정에 대한 내용은 설명하지 않았습니다.


DevExpress.XtraTreeList 를 이용하는 소스 샘플입니다.

 

private void LoadDBTree()
{
    string sQuery = @"select * from TreeTable";

    DataTable dtEquip = _dbcon.GetDataTable(sQuery);

	
    trEquip.OptionsBehavior.Editable = false;


	//트리의 루트 노드 생성
    TreeListColumn tlcTitle = new TreeListColumn();

    tlcTitle.Caption = "공원장비";
    tlcTitle.Width = 100;
    tlcTitle.Visible = true;            

    trEquip.Columns.Add(tlcTitle);
	
    TreeListNode tlnRoot = trEquip.AppendNode("공원", null);
	
    tlnRoot.SetValue(0, "공원");


   
    TreeListNode tlnPark = null;  //임시로 지정될 부모 노드
    TreeListNode tlnEquip = null; //임시로 지정될 장비 노드

    string tempiParkArea = "0";

    if (dtEquip != null && dtEquip.Rows.Count > 0)
    {
        for (int i = 0; i < dtEquip.Rows.Count; i++)
        {
			// iParkArea 가 다르면 루트 트리 밑으로 자식 트리 붙이고, 자식트리 밑으로 손자트리 생성
            if(tempiParkArea != dtEquip.Rows[i]["iParkArea"].ToString())
            {
                tlnPark = trEquip.AppendNode(dtEquip.Rows[i]["ParkName"].ToString(), tlnRoot, dtEquip.Rows[i]);
                tlnPark.SetValue(0, dtEquip.Rows[i]["ParkName"].ToString());

                tlnEquip = trEquip.AppendNode(dtEquip.Rows[i]["EquipName"].ToString(), tlnPark, dtEquip.Rows[i]);
                tlnEquip.SetValue(0, dtEquip.Rows[i]["EquipName"].ToString());
            }
            else
            {
			// iParkArea 가 같으므로 공원 밑으로 장비 트리 노드 추가
                tlnEquip = trEquip.AppendNode(dtEquip.Rows[i]["EquipName"].ToString(), tlnPark, dtEquip.Rows[i]);
                tlnEquip.SetValue(0, dtEquip.Rows[i]["EquipName"].ToString());
            }

            tempiParkArea = dtEquip.Rows[i]["iParkArea"].ToString();
        }
    }
    

}

 

댓글

💲 추천 글