从对象的下拉列表中检索选中的项目作为对象
本文关键字:对象 项目 检索 下拉列表 | 更新日期: 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.Text
和ddl.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];