方法一:
前台代码ASPX:
<form id="form1" runat="server"> 请输入数量:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="确定" onclick="Button1_Click1" /> <div id="divControl" runat="server"> </div> <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="提交所有信息" /> </form>后台代码ASPX.CS:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 首先先循环出你所输入数字的文本框 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click1(object sender, EventArgs e) { AddTextBox(); } //动态添加TextBox private void AddTextBox() { for (int i = 0; i < Convert.ToInt32(TextBox1.Text); i++) { Label li = new Label(); li.Text = (i + 1) + ".用户名:"; TextBox t = new TextBox(); t.ID = "txt" + i.ToString(); TextBoxBinds(t, i); divControl.Controls.Add(li); divControl.Controls.Add(t); divControl.Controls.Add(new LiteralControl("<br>")); } } /// <summary> /// 然后提交提交所有数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button2_Click(object sender, EventArgs e) { AddTextBox(); int txtCount = Convert.ToInt32(TextBox1.Text); //进行验证是否有为空的数据!,该验证必须放在重复循环TextBox信息之后,否则将不会显示回传后的TextBox for (int i = 0; i < txtCount; i++) { String txtValue = Request.Form["txt" + i.ToString()]; if (!CheckIsNull(txtValue)) { //如果验证有不符合的将不进行下面数据库相关操作. return; } } for (int i = 0; i < txtCount; i++) { Response.Write(Request.Form["txt" + i.ToString()] + "<br>"); //Response.Write("现在可以对数据库中的数据循环操作了!"); } } /// <summary> /// 重复提交时对数据的绑定 /// </summary> /// <param name="t"></param> /// <param name="i"></param> private void TextBoxBinds(TextBox t, int i) { //通过TextBox的name得到它的值 string txtValue = Request.Form["txt" + i.ToString()]; //判断该值是否为空 if (!String.IsNullOrEmpty(txtValue)) { //不为空则对该文本框的值赋值 t.Text = txtValue; } } /// <summary> /// 验证文本框是否为空! /// </summary> /// <param name="txtValue"></param> /// <returns></returns> private bool CheckIsNull(String txtValue) { if (String.IsNullOrEmpty(txtValue)) { LiteralControl lc = new LiteralControl(); lc.Text = "<script>alert(/"请输入文本框信息!/");</script>"; Page.Controls.Add(lc); return false; } return true; } }
方法二:
前台使用JS添加Input type="text"html控件:
<!--以下html内容可以用js动态输入--> <table> <tr> <td> 姓名</td><td> 性别</td><td>身份证 </td></tr> <tr> <td> <input type="text" name="txtName" /></td><td> <select name="lstSex"></select></td><td> <input type="text" name="txtCerID" /> </td></tr> <tr> <td> <input type="text" name="txtName" /></td><td> <select name="lstSex"></select></td><td> <input type="text" name="txtCerID" /> </td></tr> </table>后台代码:
string[] arrName = Request.Form.GetValues("txtName"); string[] arrSex = Request.Form.GetValues("lstSex"); string[] arrCerId = Request.Form.GetValues("txtCerID"); for(int i=0;i<arrName.length;i++){ // 取得第i行的数据,后来你就保存去吧 string name = arrName[i]; string sex = arrSex[i]; string cerId = arrCerId[i]; }还可以用split方法来截取值: String[] strSprit = Request.Form["txtUsername"].Split(','); for (int i = 0; i < strSprit.Length; i++) { Response.Write(strSprit[i]+"<br>"); }