我正在ASP.net上建立一个销售点系统。我有一个名为" tblProduct"的数据库表。我使用Entity Framework将其转换为使用代码优先方法的类。我创建了一个绑定列表,它包含项目,并将ListBox数据源绑定到绑定列表。当一个人选择产品时,该项目进入绑定列表,因此显示在ListBox上,一切正常,直到现在。我的列表框名称为" lbProductsChosen",仅供参考。
private static BindingList<tblProduct> blProducts = new BindingList<tblProduct>();
protected void Page_Load(object sender, EventArgs e)
{
lbProductsChosen.DataSource = blProducts;
lbProductsChosen.DataTextField = "Description";
CreateTab();
AddProductsToTab();
ButtonResize();
}
然而,在尝试制作&#34;删除&#34;按钮,尝试使用以下方法从ListBox中删除所选项目:
protected void btnDeleteItem_Click(object sender, EventArgs e)
{
tblProduct selectedItem = (tblProduct)lbProductsChosen.SelectedItem;
blProducts.Remove(selectedItem);
}
它给了我一个错误,告诉我它&#34;无法转换类型&System; Web.UI.WebControls.ListItem&#39;到&#39; Restoraunt_POS.tblProduct&#39;&#34;
编辑:这是我的按钮点击事件,只是为了清晰起见。按下产品按钮时,它将信息保存在其属性属性中,创建tblProduct类的新实例并将其放入绑定列表(blProducts)。
private void ProductButton_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
string description = b.Attributes["data-name"];
decimal price = Convert.ToDecimal(b.Attributes["data-price"]);
int productID = Convert.ToInt32(b.Attributes["data-prodID"]);
int prodType = Convert.ToInt32(b.Attributes["data-prodType"]);
tblProduct p = new tblProduct() { Description = description , Price = price , ProductID = productID , ProductType = prodType };
blProducts.Add(p);
lbProductsChosen.Items.Clear();
lbProductsChosen.DataBind();
}