2017-05-24 2 views
0

내 프로젝트에는 SubControl이라는 UserControl이 있습니다. TreeList 및 두 개의 Button이 포함 된 해당 UserControl. 버튼은 treelist의 다음 행과 이전 행을 집중시키는 데 사용됩니다.데이터베이스에서 DevExpress Treelist의 데이터 바인딩

또 다른 프로젝트에서 저는 다른 컨트롤 인 MainControl이라는 이름을 가진 또 다른 UserControl을 가지고 있습니다. 여기에서는 SubControl을 사용하고 있습니다.

내 문제는 무엇입니까, MainControl에서 나는 데이터베이스에서 treelist에 데이터를 바인딩 할 수 없습니다.

SqlConnection SqlCon = new SqlConnection("Data Source=source; Initial Catalog=dbname; Integrated Security=True"); 
     SqlCon.Open(); 
     SqlCommand ad = new SqlCommand("Select* from mytablename", SqlCon); 
     SqlDataAdapter da = new SqlDataAdapter(ad); 
     DataSet ds = new DataSet(); 

     da.Fill(ds); 

     SubControl.DataSource = ds; 
     SubControl.DataBindings(); 

어떻게하면됩니까? 도움을 청했습니다.

+0

SubControl의 DataSource 속성은 string 유형입니다. 따라서 문자열에 데이터 세트를 할당 할 수 없습니다. SubControl 클래스의 코드를 공유 할 수 있습니까? 어떻게 그것의 DataSource 속성을 사용하여 트리를 채우고 있습니까? –

+0

@ChetanRanpariya DataSource에 대한 Object type 속성을 만들었습니다. – User6667769

+0

DataSource 속성을 사용하여 TreeView를 어떻게 작성하고 있습니까? –

답변

2

DataSet이 아니라 DataTable에 바인딩해야합니다. DevExpress의에서

SubControl.DataSource = ds.Tables[0]; 

:

https://www.devexpress.com/Support/Center/Question/Details/Q520794

트리 목록 계층 구조를 생성하기 위해, 그것은 에 필요한 두 개의 추가 필드 소스의 DataTable에서를 지정합니다. 첫 번째 필드는 노드의 고유 ID를 저장해야합니다 (대부분 이 이미 DataTable의 기본 키임). 다른 필드는 각 노드의 부모 노드 ID가 포함 된 이어야합니다. 이러한 필드를 TreeList 컨트롤에 대해 으로 지정하려면 TreeList.KeyFieldName 및 TreeList.ParentFieldName 속성을 사용합니다. 이 점에 대한 자세한 내용은 다음 도움말 문서를 참조하십시오. 트리 생성 XtraTreeList의 알고리즘.

+0

안녕하세요, 실제로 TreeList를 사용하고 있습니다. 데이터베이스에 내 테이블에 자식 노드가 없습니다. Treelist에서 데이터를 간단하게 바인딩해야합니다. – User6667769

+0

타사 컨트롤입니까? –

+0

예, 해당 DevExpress TreeList – User6667769

관련 문제