2012-07-18 4 views
1

데이터를 내보내는 중입니다. 지금은 텍스트 대신 값을 내보내는 필드가 있습니다. 그래서 목록 상자에 텍스트와 값을 반환 객체를 저장하고 너무 같은 개체에서 목록 상자의 값에 일치하고있다 :즉시 작성된 목록 상자를 반복합니다.

MaterialDB materials = new MaterialDB(); 
DropDownList listBoxMaterials = new DropDownList(); 
listBoxMaterials.DataSource = materials.GetItems(ModuleId, TabId); 
listBoxMaterials.DataBind(); 

string materialString = ""; 


foreach (ListItem i in listBoxMaterials.Items) 
{ 
    if (i.Value == row["MaterialTypeID"].ToString()) 
    { 
     materialString = i.Text; 
    } 
} 

나는 i.Value 그것을 항상 반환이를 사용하는 경우 "System.Data.DataRowView"실제 값 대신. 나는이 모든 것을 코드에서 수행하고있다. 어쨌든 이걸 작동 시키려면?

감사합니다.

+1

사용중인 수업과 관련된 태그를 추가해보십시오. 예 : Winforms, WPF, ASP-NET, DataSets, DataGrid 등 –

답변

3

DropDownList의 DataTextField 및 DataValueField 속성을 설정해야합니다. 예 :

MaterialDB materials = new MaterialDB(); 
DropDownList listBoxMaterials = new DropDownList(); 
listBoxMaterials.DataSource = materials.GetItems(ModuleId, TabId); 
listBoxMaterials.DataTextField = "MaterialName"; 
listBoxMaterials.DataTextValue = "MaterialID"; 
listBoxMaterials.DataBind(); 

string materialString = "";  

foreach (ListItem i in listBoxMaterials.Items) 
{ 
    if (i.Value == row["MaterialTypeID"].ToString()) 
    { 
     materialString = i.Text; 
    } 
} 
+0

완벽한! 감사! –

관련 문제