如何从webform listbox_SelectedIndexChanged中获取对象

时间:2015-01-04 15:40:19

标签: c# object webforms listbox

我的WinForm代码运行良好:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        var Auswahl = listBox1.SelectedItem as Beobachter;
        textBox1.Text = Auswahl.BeobachterID.ToString();
        textBox2.Text = Auswahl.Vorname;
        textBox3.Text = Auswahl.Nachname;
    }

对于WebForm它没有

    protected void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        var Auswahl = *ListBox2.SelectedItem as Person*; // This part fails

        txtID.Text = Auswahl.PID.ToString();
        txtVorname.Text = Auswahl.Vorname;
        txtNachname.Text = Auswahl.Nachname;
    }

错误讯息: 无法通过引用转换,装箱转换,拆箱转换,换行转换或空类型转换将类型'System.Web.UI.WebControls.ListItem'转换为'WebApplication4.Person'

我该怎么做?

1 个答案:

答案 0 :(得分:0)

在webforms中,下拉列表中项目的值不能像Winforms中那样是完整对象。 SelectedItem属性始终为ListItem类型,并包含字符串属性Text和Value。绑定下拉列表时,需要将每个项目的值设置为对象的字符串标识符,例如,如果下拉列表中列出了数据库中的行,则为主键。