如何删除动态控制值?

时间:2012-11-08 19:08:17

标签: c# .net vb.net visual-studio webforms

请参阅以下代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="Div1" runat="server" />
    <asp:Button ID="Button1" runat="server" Text="Create a TextBox" />
    <asp:Button ID="Button2" runat="server" Text="Erase TextBox Text" />
    </form>
</body>
</html>
..........................................
protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            if (Request.Params.ToString().IndexOf("Button1") > 0)
            {
                CreateTextBox();
            }
            else
            {
                if (Request.Params.ToString().IndexOf("Button2") > 0)
                {
                    TextBox txtbx = CreateTextBox();
                    txtbx.Text = "";
                }
            }
        }        
    }

    TextBox CreateTextBox()
    {
        TextBox txtbx = new TextBox();
        Div1.Controls.Add(txtbx);

        return txtbx;
    }

在PostBack上,我检查是否按下了“Button1”或“Button2”。

我按 Button1 ,动态创建TextBox 我在TextBox中输入一些文本并再次按下Button1。重新创建TextBox,我输入的文本保留在PostBack上。

当我按 Button2 时,我想重新创建TextBox,但我想删除之前输入的文本。但即使我已指定 txtbx.Text =“”,文本仍会在PostBack后保留。

如何重新创建TextBox但删除输入的文本?
(如果我按下Button1,我希望保留文本,但如果我按下Button2则不希望保留文本)

谢谢。

1 个答案:

答案 0 :(得分:1)

page load上,您的上下文尚未恢复。如果要覆盖控件的状态值,请处理每个按钮的Click事件并相应地执行逻辑。