2013-03-01 3 views
0

무엇이 누락 되었습니까?SelectedValue 대신 SelectedText 값을 반환하는 ASP.NET DropDown

ListItemCollection oL = new ListItemCollection(); 
     foreach (var item in edata) 
     { 
      ListItem oListItem = new ListItem(); 
      oListItem.Text = item.StatusName; //"StatusName" 
      oListItem.Value = item.Id.ToString(); // "StatusId" 

      if(item.Id == statusid) 
      { 
       oListItem.Selected = true; 
      } 
      oL.Add(oListItem); 

     } 

을하지만이 같은 SelectedItem.Value을 선택하려고 할 때, 그것은 StatusId를 반환해야하지만 StatusName을 반환 : 나는 코드 숨김에서 다음과 같이 드롭 다운을 건설하고있다. 내가 뭘 놓치고 있니?

EventStatusDropDownList1.SelectedItem.Value 
+0

기존 (올바른) 답변을 무효화하는 방식으로 소식을 업데이트하는 것은 나쁜 형태입니다. 게시하기 전에 질문을 통해 생각해 보시고 제한 사항을 포함하십시오. 이미 시간을 쓰고 그것을 게시 한 후에 그의 해결책을 배제하는 것이 Amit에게는 불공평합니다. – jadarnel27

+1

ID와 이름이 목록에서 다른 값인지 아닌지 확인 했습니까? –

+0

예 모두 다른 값을 가지고 있습니다 – DDR

답변

0

여기서 edata은 무엇을 의미합니까? DataTable 또는 일반 List 인 경우 DataSourceDataBind 멤버를 사용할 수 있습니다.

var edata = SomeMethodReturnngDataTable(); 
EventStatusDropDownList1.DataSource = edata; 
EventStatusDropDownList1.DataTextField = "StatusName"; 
EventStatusDropDownList1.DataValueField = "StatusId"; 
EventStatusDropDownList1.DataBind(); 

이제 ID를 얻기 위해 EventStatusDropDownList1.SelectedItem.Value를 사용할 수 있습니다 아래의 코드를 참조하십시오.

+0

저는 이전에 이것을 사용 했었습니다. 이제 제가 언급 한 방법을 사용해야합니다. Yed edata는 객체 목록 – DDR

+0

입니다. 시간을 갖고 다시 말하십시오. 당신의 추론을 따르는 것은 정말로 어렵습니다. – Stu

+0

예를 들어, 원래의 질문과 동일한 방식으로 구현을 변경해야한다고 가정합니다. 왜? – Stu

관련 문제