我的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'
我该怎么做?
答案 0 :(得分:0)
在webforms中,下拉列表中项目的值不能像Winforms中那样是完整对象。 SelectedItem属性始终为ListItem类型,并包含字符串属性Text和Value。绑定下拉列表时,需要将每个项目的值设置为对象的字符串标识符,例如,如果下拉列表中列出了数据库中的行,则为主键。