【发布时间】:2012-07-19 13:13:19
【问题描述】:
当我尝试删除列表中的项目时,我得到“对象引用未设置为对象的实例”。这是代码:
protected void btnIzvadi_Click(object sender, EventArgs e)
{
if (Session["kosnice"] == null)
{
lblError.Text = "Вашата купувачка кошничка е празна";
}
else
{
try
{
List<string> kosnicka = new List<string>();
kosnicka = (List<string>)Session["kosnice"];
for (int i = 0; i < lstKosnicka.Items.Count; i++)
{
kosnicka.Add(lstKosnicka.Items[i].Text);
}
string pom = lstKosnicka.SelectedItem.Text;
kosnicka.Remove(pom);
for (int i = 0; i < kosnicka.Count; i++)
{
lblError.Text = " " + kosnicka[i];
}
Session["kosnice"] = kosnicka;
lstKosnicka.DataSource = kosnicka;
lstKosnicka.DataBind();
}
catch (NullReferenceException err)
{
lblError.Text = err.Message;
}
}
}
我得到异常的列表表单不是空的,它需要与 btnIzvadi 相关的字段验证器。
【问题讨论】:
-
哪一行出现异常?
-
注意try块的前两行要合并到List
kosnicka = (List )Session["kosnice"]; -
这可能是导致问题的指令吗?会话[“kosnice”] = kosnicka;可能需要演员表。
-
@PreetSangha 例外是在字符串 pom = lstKosnicka.SelectedItem.Text;
-
@Katerina 在您的 page_load(page_init、page_prerender 等)中,您是否重置了 lstKosnicka?请记住,每当对控件进行操作时,页面都会执行完整的回发。因此,如果在您的 Page_Load 中设置 lstKosnicka.SelectedItem = null (例如),当您单击按钮时,它将通过 Page_Load 并在 btnClick 方法运行之前将其重置。
标签: .net nullreferenceexception