2011-02-24 5 views
2

나는 dimension.DataTextField을 것을 원하는, 내가 Listbox목록 상자의 DataValueField 만 변경 하시겠습니까?

dimension.DataSource = provider.DimensionList; 
dimension.DataBind(); 

내가 값이이 요소

dimension.DataSource = provider.DimensionList; 
dimension.DataValueField = "ID"; 
dimension.DataBind(); 

ID가되고 싶어요해야하지만 텍스트가 ID로 변경하지 않으 object.ToString()을 얻습니다.

어떻게이 작업을 수행 할 수 있습니까?

+0

MAUS에 의해 주어진 대답은 정말 멋진입니다. 하지만 궁금한 점이 있다면 ListBox의 DataTextField가 ID로 설정되어 있습니다. 기본적으로 item.ToString() [DimensionList의 Item]으로 설정해야하며 항목 유형에서 ToString() 메서드를 재정 의하여 문제를 해결할 수 있습니다. –

+0

@Vijay, 아무 것도 지정하지 않았습니다. 비어 있고 null로 설정하려고 시도했지만 아무 것도 변경되지 않았습니다. 나는 하나가 설정되어 있으면 둘 다 값을 얻습니다. – BrunoLM

+0

DimensionList의 항목 유형에서 ToString() 메서드를 재정의하고 어떤 일이 발생하는지 확인할 수 있습니까? 예 : DimensionList의 각 항목이 Test 클래스 유형 인 경우 Test의 ToString() 메서드를 제공하여 현재 상태의 문자열 표현을 반환 할 수 있습니다. –

답변

4

은 내가 DimensionList 정확히 유형을 모르는,하지만 난 당신이 익명의 유형 반환하는 선택 사용할 수 있다고 생각 :

dimension.DataSource = provider.DimensionList.Select(d=>new {Id=d.Id,Text=d.ToString()}).ToList(); 
dimension.DataValueField = "Id"; 
dimension.DataTextField = "Text"; 
dimension.DataBind(); 
+0

좋은 해결 방법. 나는 그것을 좋아한다 :) – BrunoLM

+0

깔끔한 해결! – Nick

관련 문제