动态添加TextBox时出现UnHandled Exception

时间:2016-10-13 10:29:28

标签: c# asp.net unhandled-exception

我正在尝试动态添加按钮的文本框。以下是我的代码。我可以添加一个文本框,但在完成所有代码UnHandled exception后添加下一个文本框时会抛出。我不知道它被抛出的地方。

protected override void LoadViewState(object savedState)
        {
            base.LoadViewState(savedState);

            controlidlist = (List<string>)ViewState["controlidlist"];
            if(controlidlist != null)
            {
                foreach (string Id in controlidlist)
                {
                    i++;
                    TextBox tb = new TextBox();
                    tb.ID = Id;
                    System.Web.UI.LiteralControl lineBreak = new System.Web.UI.LiteralControl();
                    UpdatePanel1.ContentTemplateContainer.Controls.Add(tb);
                    UpdatePanel1.ContentTemplateContainer.Controls.Add(lineBreak);
                }
            }
            else
            {
                controlidlist = new List<string>();
            }

        }

ButtonClick事件:

protected void Button_Click1(object sender, EventArgs e)
        {                     
            try
            {
                i++;
                TextBox tB = new TextBox();
                tB.ID = "textBox_" + i;


                System.Web.UI.LiteralControl lineBreak = new System.Web.UI.LiteralControl("<br>");
                UpdatePanel1.ContentTemplateContainer.Controls.Add(tb);
                UpdatePanel1.ContentTemplateContainer.Controls.Add(lineBreak);
                ViewState["controlidlist"] = controlidlist;
                controlidlist.Add(tb.ID);
                UpdatePanel1.DataBind();
            }
            catch(Exception ex)
            { }

        }

完全执行上面的代码后,在Global.asax中抛出异常。

错误:

  

{&#34;类型异常&#39; System.Web.HttpUnhandledException&#39;被扔了。&#34;}

的global.asax

void Application_Error(object sender, EventArgs e)
    {
        // Code that runs when an unhandled error occurs
        Exception exception = Server.GetLastError() as HttpUnhandledException;
        if (exception != null && exception.InnerException is ProductNotFoundException)
        {

        }
    }

这可能很简单,但我对此很新

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码添加带换行符的动态TextBox

TextBox t = new TextBox();
t.ID = "textBox_" + i;
ViewState["controlidlist"] = controlidlist;
controlidlist.Add(tb.ID);
UpdatePanel1.ContentTemplateContainer.Controls.Add(t);
Literal lit = new Literal() { Mode=LiteralMode.PassThrough, Text="<br/>" };
UpdatePanel1.ContentTemplateContainer.Controls.Add(lit);

希望它能解决你的问题。

由于