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' 正确地评论了我。由于这是在网络上下文中,因此您必须实现这一点有点不同。您可以设置 DropDownList 的 DataTextField 和 DataValueField。将 ID 绑定到 DataValueField,当您获取 SelectedItem 时,获取 Value-property 并且您拥有 ID。

var selectedItem = myDropDown.SelectedItem;
var ID = selectedItem.Value;
于 2012-10-17T14:27:02.763 回答
0

在事件处理程序中:

var id = ((StudentEntity)sender).Id;
于 2012-10-17T14:24:46.153 回答