所以我有将代码类绑定到列表框的代码:
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中实现这个目标
有什么建议吗?
答案 0 :(得分:0)
在网络表单中,SelectedItem
没有在DataSource
中分配类型的对象,而是获得ListItem
。
您必须使用当前项来从数据源获取记录,因为回发上的dealers
对象不可用。您可以为 DataValueField 分配唯一ID,您将在回发之后使用它来从数据源(数据库)中获取记录
lstDealers.DataValueField = "IdOfDealer";
回发
string dealerId = (Dealer)lstDealers.SelectedValue;
Dealer dealer = someMethodToFetchAndReturnDealer(dealerId);