如何从列表框数据源获取类

时间:2014-06-25 11:20:33

标签: asp.net listbox datasource

所以我有将代码类绑定到列表框的代码:

lstDealers.DataSource = dealers;
lstDealers.DataTextField = "DealerName";
lstDealers.DataBind();

这很好用,我没有问题显示值。但是我遇到的问题是我试图从列表对象中获取类。

我尝试了两种不同的方法,但没有一种方法有效:

var selectedItems = from ListItem i in lstDealers.Items where i.Selected select i;
Dealer dealer = (Dealer)selectedItems;

Dealer dealer = (Dealer)lstDealers.SelectedItem;

现在我知道第二个在winform中工作,但是我想在ASP.Net framework 4.5中实现这个目标

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在网络表单中,SelectedItem没有在DataSource中分配类型的对象,而是获得ListItem

您必须使用当前项来从数据源获取记录,因为回发上的dealers对象不可用。您可以为 DataValueField 分配唯一ID,您将在回发之后使用它来从数据源(数据库)中获取记录

lstDealers.DataValueField = "IdOfDealer";

回发

string dealerId = (Dealer)lstDealers.SelectedValue;    
Dealer dealer = someMethodToFetchAndReturnDealer(dealerId);