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>");
}
前台代码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>");
}
相关文章推荐
- 在Asp.net中动态添加css文件,js文件,控件
- asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
- Asp.net使用repeater控件动态添加、删除一行
- ASP.NET往动态表格内添加控件
- asp.net为控件动态添加事件
- 关于ASP.NET页面动态添加控件的总结
- ASP.NET动态添加控件一例
- ASP.NET 页面中动态增加的控件、添加事件第1/2页
- asp.net 控件后台动态添加样式表
- asp.net 动态添加多个用户控件
- 动态添加ASP.NET控件并绑定处理事件
- ASP.NET 页面动态添加用户控件技巧
- asp.net 动态添加控件
- 怎样记住动态添加的ASP.NET控件的状态
- ASP.NET 页面中动态增加的控件、添加事件第1/2页
- Asp.Net动态添加控件,并获取其值
- asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
- 在ASP.NET页面中动态添加控件
- asp.net动态添加控件并获取值
- asp.net动态添加控件和获取控件的值