从对象的下拉列表中检索选中的项目作为对象

本文关键字:对象 项目 检索 下拉列表 | 更新日期: 2023-09-27 17:53:49

我正在尝试从对象的下拉列表中检索选定的对象。

我的当前代码是:

// Drop Down List.
ddlTask.DataSource = access.GetTasks(); // List of Tasks
Task task = ddlTask.??? // ((GET SELECTED VALUE AS AN OBJECT))

GetTasks()的实现:

public IList<Task> GetTasks()
{
    string qryString = "SELECT tk from Task tk";
    IQuery qryFindTasks = _session.CreateQuery(qryString);
    return qryFindTasks.List<Task>();
}

我该怎么做?

从对象的下拉列表中检索选中的项目作为对象

如果您的ddlTask是一个ComboBox,那么数据源应该是一个集合,而不是一个任务列表,您应该将ComboBox的显示成员暗示为选定的集合列名。

ddlTask。DisplayMember = "ColumnName";

然后使用ddlTask。设置SelectedItem或ddlTask。文本

ddl.SelectedItem的返回类型是ListItem,您无法从中获取对象,您必须使用ddl.SelectedItem.Textddl.SelectedItem.Value来获取所选项目的Text和Value。

然后你可以根据这些值创建一个对象(例如):

var task = new Task(text,value);

或者您必须查询从哪里加载任务的存储(例如):

 var selectedTask =  _session.GetTaskBySelectedValue(ddl.SelectedItem.Value);

对于其他试图得到一个简单答案的人…考虑就地管理和检索…

Task selectedItem = null;
if(ddlTask.SelectedIndex >= 0)
        selectedItem = (Task)((IList<Task>)ddlTask.DataSource)[ddlTask.SelectedIndex];