如何从动态创建的文本框中获取文本以存储在数据库中?

时间:2018-08-05 04:46:06

标签: c# asp.net

我有一个页面,其中根据下拉列表中的值n创建了n个文本框。我的问题是关于将文本框中的值访问到字符串变量中,以便将它们存储在数据库中。 以下是用于创建文本框的代码

 protected void ddlNumOfVolunteers_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {


        // Get the number of labels to create.
        int numlabels = System.Convert.ToInt32(ddlNumOfVolunteers.SelectedItem.Text);
        for (int i = 1; i <= numlabels; i++)
        {
            Label myLabel = new Label();
            TextBox txtbox = new TextBox();
            // Set the label's Text and ID properties.
            myLabel.ID = "LabelVol" + i.ToString();
            myLabel.Text = "Volunteer " + i.ToString();
            txtbox.ID = "TxtBoxVol" + i.ToString();
            PlaceHolder1.Controls.Add(myLabel);
            PlaceHolder2.Controls.Add(txtbox);
            // Add a spacer in the form of an HTML <br /> element.
            PlaceHolder2.Controls.Add(new LiteralControl("<br />"));
            PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
        } 
    }
    catch(Exception ex)
    {
        Response.Write(ex.Message);
    }
}

然后,当我单击下面的保存按钮时,我想访问动态创建的文本框中的所有值并将其存储到数组之类的数据结构中。

我使用了以下代码,我知道它将无法工作,因为TxtBoxVol1在此块中将不可用。因此,当使用ddlNumOfVolunteers_SelectedIndexChanged函数本身时,如何将值存储在数组中。

protected void btnStart_Click(object sender, EventArgs e)
{
TextBox tb = (TextBox)this.FindControl("PlaceHolder2").FindControl("TxtBoxVol1");
string vol1name = tb.Text;
}

预先感谢

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。

但是,您可以将它们存储在array的{​​{1}}甚至List<T>

Dictionary