【问题标题】:I get Null Refence exception我得到空引用异常
【发布时间】: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


【解决方案1】:

代替

    string pom = lstKosnicka.SelectedItem.Text;

试试这个:

    string pom = lstKosnicka.Text;

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2011-04-14
    相关资源
    最近更新 更多