2016-03-23 48 views
0

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

我该怎么在asp.net中做到这一点?

+0

我知道这是可以使用jQuery来完成,但回传新的文本框将会丢失 –

+0

后,我可以帮助你在维修器材这种状态下,如果你能在jQuery中提供的代码,否则这个功能可以使用面板来完成,我将分享作为答案 – Webruster

+0

检查此:http://www.aspsnippets.com/Articles/Save-Insert-dynamic-TextBox-Value-Text-to-database-in-ASPNet-using-C-and- VBNet.aspx –

回答

1

您可以使用面板来创建动态文本框。 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"); 
} 

保存至数据库:

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

C#

保护无效保存(对象发件人,EventArgs的)

{ 

     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} 
3

要添加动态控制您的下面的.aspx文件是示例代码。

添加下面的div在id为您的.aspx文件是

的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中表示相关联的字符串键 和字符串值可以用键或者与 索引访问的集合。

相关问题