如何动态添加文本框并保存在asp.net中

时间:2016-03-23 05:49:54

标签: c# asp.net

我想动态添加文本框并将这些值保存到asp.net中的数据库,在asp.net中是否有任何控件?

如何在asp.net中执行此操作?

2 个答案:

答案 0 :(得分:4)

在下面的.aspx文件中添加动态控件是示例代码。

在.aspx文件中添加以下div,其id为addControl

<div id="addControl" runat="server">
</div>

您可以通过在.cs文件中添加以下代码来创建动态TextBox控件。 Add Control是上面定义div的id。

 TextBox txt1 = new TextBox();
 txt1.ID = "txtOne";
 txt1.Text = "";
 txt1.CssClass = "myClass";
 txt1.ClientIDMode = System.Web.UI.ClientIDMode.Static;
 addControl.Controls.Add(txt1);

在NameValueCollection的帮助下,您可以获得TextBox的值。

NameValueCollection frmCollection = Request.Form;
string inputString = frmCollection["txtOne"];
  

NameValueCollection表示关联的String键的集合   和字符串值,可以使用键或使用   索引。

答案 1 :(得分:2)

您可以使用面板创建动态文本框。 Panel pnlTextBox;

protected void Page_PreInit(object sender, EventArgs e)
{
    //Create a Dynamic Panel
    pnlTextBox = new Panel();
    pnlTextBox.ID = "pnlTextBox";
    pnlTextBox.BorderWidth = 1;
    pnlTextBox.Width = 300;
    this.form1.Controls.Add(pnlTextBox);

    //Create a LinkDynamic Button to Add TextBoxes
    LinkButton btnAddtxt = new LinkButton();
    btnAddtxt.ID = "btnAddTxt";
    btnAddtxt.Text = "Add TextBox";
    btnAddtxt.Click += new System.EventHandler(btnAdd_Click);
    this.form1.Controls.Add(btnAddtxt);

    //Recreate Controls
    RecreateControls("txtDynamic", "TextBox");
}

保存到DB:

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="Save" />

<强> C#

protected void Save(object sender,EventArgs e)

{

        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("INSERT INTO Names(Name) VALUES(@Name)"))
            {
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@Name", txtDynamic.Text);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }

}

详情请参阅this link

修改

正如您在评论中提到的那样,您正在使用Jquery,因此为了在回发期间加载,请尝试加载文本框

function pageLoad() {// your dynamic Text box code using Jquery}