2013-03-12 2 views
1

UltraGrid 열에 대해 ValueList으로 DataTable의 DataColumn을 사용할 수 있습니까?DataColumn 값을 UltraGridColumn의 ValueList에 대한 소스로 사용

필자는 열 스타일을 DropDownList으로 설정했습니다. 문제는 무엇입니까? ValueList에 무엇을 사용합니까?

ultraGrid1.DisplayLayout.Bands[0].Columns["col"].Style = ColumnStyle.DropDownList; 
ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = ??? 

답변

2

BindableValueList을 만듭니다. Constructors 중 하나는 데이터 소스 인 dataMember, displayMember, valueMember 및 bindingContextControl에 대해 객체를 사용합니다.

ValueList 설정하는 코드의 라인 : 위의 예에서

this.ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = new BindableValueList(dt, "", "displayColumn","valueColumn", this.ultraGrid1); 

을, DT 당신이로 사용하려는 열의 키 것, displayColumn 및 valueColumn에 바인딩 된 DataTable에있다 드롭 다운의 표시 및 값 부분. DataSet에 바인딩하고 첫 번째 테이블 이외의 테이블에 바인딩하려는 경우 두 번째 매개 변수를 사용하여 바인딩 할 테이블의 이름을 전달합니다.

+0

+1 결코 사용하지 않았습니다. 그러나 OP는 ValueColumn이없는 단 하나의 열만 요구했습니다. – Steve

+0

값 목록과 값이 같고 디스플레이가 값과 같지 않으면 값 목록의 표시 부분과 값이 필요하므로 한 열만 사용하는 것이 확실하지 않습니다. 둘 다 동일하면 둘 다에 대해 동일한 열을 지정할 수 있습니다. – alhalama

+0

사실 내 코드에서는 두 개의 매개 변수 (datavalue 및 displaytext)를 원하는 ValueListItems.Add 오버로드를 사용했지만 displaytext 만 허용하는 오버로드도 있습니다. http://help.infragistics.com/Help/NetAdvantage/WinForms/2012.2 /CLR4.0/html/Infragistics4.Win.v12.2~Infragistics.Win.ValueListItemsCollection~Add(Object).html – Steve

0

이것은 도움이 될 수 있습니다. 그것은 DataTable을의 ValueList 및하여 ValueList에 대한 목록으로 사용하는 필드의 이름의 키 속성에 대한 값을 수신하고 값 목록을 반환하는 간단한 절차는 UltraGridColums 중 하나에 설정

public ValueList DataTableToValueList(DataTable dt, string vlKey, string fieldName) 
    { 
     ValueList vl = new ValueList(); 
     if (!string.IsNullOrEmpty(vlKey)) vl.Key = vlKey; 
     foreach (DataRowView r in dt.DefaultView) 
      vl.ValueListItems.Add(r[fieldName]); 
     return vl; 
    } 
(아마도 InitializeLayout 이벤트) 이런 식으로

사용

grd.DisplayLayout.Bands[0].Columns["col"].ValueList = 
        DataTableToValueList(dtCustomers,"vlCustomer", "CustomerName"); 
+0

BindableValueList를 사용하는 것이 더 간단 할 것입니다. – alhalama