Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从动态添加的文本框访问文本_C#_Asp.net_Dynamic_Textbox_Session Variables - Fatal编程技术网

C# 从动态添加的文本框访问文本

C# 从动态添加的文本框访问文本,c#,asp.net,dynamic,textbox,session-variables,C#,Asp.net,Dynamic,Textbox,Session Variables,我有一个.aspx页面,我想点击一个按钮,动态地向页面添加文本框。为此,我在页面上添加了一个占位符,并在单击按钮时将控件添加到服务器端 <asp:PlaceHolder runat="server" ID="NotificationArea"></asp:PlaceHolder> <asp:Button ID="AddNotification" runat="server" Text="Add" OnClick="AddNotification_Click" /&g

我有一个.aspx页面,我想点击一个按钮,动态地向页面添加文本框。为此,我在页面上添加了一个占位符,并在单击按钮时将控件添加到服务器端

<asp:PlaceHolder runat="server" ID="NotificationArea"></asp:PlaceHolder>
<asp:Button ID="AddNotification" runat="server" Text="Add" OnClick="AddNotification_Click" />
<asp:Button ID="RemoveNotification" runat="server" Text="Remove" OnClick="RemoveNotification_Click" />
调试结果显示NotificationArea中的控件计数为0。如何访问这些动态添加的textbox控件的文本?我是否会向文本框添加一个ontext_change事件,将特定文本框的文本保存到会话变量中的等效文本中?我该怎么做呢?

找到了解决方案。事实证明,您需要重新创建在每个帖子背面动态添加的所有控件

public void Page_Init(object sender, EventArgs e)
{
    CreateDynamicControls();
}

private void CreateDynamicControls()
{
    notifications = (List<TextBox>)(Session["Notifications"]);

    if (notifications != null)
    {
        foreach (TextBox textBox in notifications)
        {
            NotificationArea.Controls.Add(textBox);
        }
    }
}
这样做可以让我随时访问这些控件的内容

int count = NotificationArea.Controls.Count;
public void Page_Init(object sender, EventArgs e)
{
    CreateDynamicControls();
}

private void CreateDynamicControls()
{
    notifications = (List<TextBox>)(Session["Notifications"]);

    if (notifications != null)
    {
        foreach (TextBox textBox in notifications)
        {
            NotificationArea.Controls.Add(textBox);
        }
    }
}