您的位置:首页 > 编程语言 > ASP

ASP.NET动态添加TextBox控件

2011-02-10 14:15 316 查看
方法一:

前台代码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>");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: