无法将ListBox项转换为实体数据库类

时间:2017-05-26 14:25:26

标签: c# asp.net listbox

我正在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();
        }

0 个答案:

没有答案