2

以下のようなドロップダウンリストがあります。

DropDownList1.DataSource = Students.GetStudents();
DropDownList1.DataBind();
-----------

以下のような DataAccess クラスがあります。

public IEnumerable<StudentEntity> GetStudents()
{
List<StudentsEntity> studentsList = new List<StudentsEntity>();
studentsList = Service.GetList()  // some service getting a list of sutdents

return new BindingList<StudentEntity>(studentsList);
}

以下のような DataObject クラスがあります。

public class StudentEntity : IComparable
{
  public string fullname { get {return firstName +", "+ lastName;}
  public string ID {get; set;}
  public string Height {get; set;}
  public string Firstname {get; set;}
  public string Lastname {get; set;}
  public int CompareTo(object obj)
  {
     StudentEntity entity = (StudentEntity) obj;
     return Lastname.CompareTo(entity.Lastname);
  }
}

UI レベルでは、「学生のフルネーム」がドロップダウン リストに表示されますが、ドロップダウン リストから選択した学生の「ID」を取得するにはどうすればよいですか?

4

2 に答える 2

1

選択したアイテムを DropDownList から取得し、それを StudentEntity タイプのオブジェクトにキャストします。その後、そのオブジェクトの ID を取得できます。擬似コード:

var selectedItem = myDropDown.SelectedItem as StudentEntity;
var ID = selectedItem.ID;

編集:

「hvd」は私に正しくコメントしました。これは Web コンテキスト内にあるため、これは少し異なる方法で実現する必要があります。DropDownList の DataTextField と DataValueField を設定できます。ID を DataValueField にバインドし、SelectedItem を取得したら、Value プロパティを取得して ID を取得します。

var selectedItem = myDropDown.SelectedItem;
var ID = selectedItem.Value;
于 2012-10-17T14:27:02.763 に答える