【问题标题】:Cannot convert type 'System.Web.UI.WebControls.ListItem' to 'WebApplication.Title via a reference conversion, boxing conversion,无法通过引用转换、装箱转换将类型“System.Web.UI.WebControls.ListItem”转换为“WebApplication.Title”,
【发布时间】:2013-07-14 03:04:10
【问题描述】:

情况如下。

-有两个列表框(lb1-lb2)。在一个(lb1)中显示的所有数据均取自数据库。

-当我想点击来自 lb1 的数据时,内容必须显示在其他列表框(lb2)中。

-它们是两个不同的表,在数据库中有关系。

-我使用了实体框架,并使用了对象初始化器来访问数据对象。

-我已经处理了 selectedIndexChanged 属性来提供动态我已经完成了以下代码

 Title choosen;
    private void lb1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (lb1.SelectedIndex == -1) return;
        choosen = lb1.SelectedItem as Title; //underlines and gives error in here
    }

它会抛出错误:无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“System.Web.UI.WebControls.ListItem”转换为“WebApplication2.Title”

我该怎么办?我错过了什么?感谢您的帮助

【问题讨论】:

  • Title 表中有哪些列?

标签: asp.net entity-framework selectedindexchanged object-initializers


【解决方案1】:

您不能直接将SelectedItem 转换为Title

下面试试

choosen = new Title(){ TitleText = lb1.SelectedItem.Value};

我假设您的标题表中有名为 TitleText 的列,根据需要进行更改

【讨论】:

  • nope 它不起作用..当我从 lb1 单击时,它必须显示在 lb2 上,在 SelectedItemChange 事件下,您所说的事情没有处理
【解决方案2】:

您无法将类型“System.Web.UI.WebControls.ListItem”转换为您的类标题

试试这个

    Title choosen;
    private void lb1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (lb1.SelectedIndex == -1) 
            return;
        choosen.name = lb1.SelectedItem.Text;//set object properties
        choosen.value= lb1.SelectedItem.Value;

    }
    public class Title { //your Title class has some properties so..i assume some properties
        public string name { get; set; }
        public string value { get; set; }
    }

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多