点击一次铵钮产生一个新文本框,分别输入值,然后获取
xxx.aspx:在网页中,拉一个动态添加文本框装载的容器PlaceHolder,和两个铵钮,一个是添加,另一个是获取值。
View Code <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<asp:Button ID="ButtonAdd" runat="server" Text="Add TextBox" OnClick="ButtonAdd_Click" />
<asp:Button ID="ButtonGetValue" runat="server" Text="GetTextValue" OnClick="ButtonGetValue_Click" />
为了记录添加的次数,我们需要写一个属性,记得点击次数。
TotalControls protected int TotalControls
{
get
{
return ViewState["TotControls"] == null ? 0 : (int)(ViewState["TotControls"]);
}
set
{
ViewState["TotControls"] = value;
}
}
写一个方法,动态产生文本框,方法有一个参数,就是传入将要产生的次数。
View Code private void DymanicallyGenerateTextBoxControl(int totalControls)
{
TextBox tb = new TextBox();
tb.ID = "TextBox" + totalControls;
this.PlaceHolder1.Controls.Add(tb);
}
网页一加载时,Page_Load事件中,判断计数器为多少,循环产生文本框。
View Code protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < TotalControls; i++)
{
DymanicallyGenerateTextBoxControl(i + 1);
}
}
Click事件:
View Code protected void ButtonAdd_Click(object sender, EventArgs e)
{
TotalControls = TotalControls + 1;
DymanicallyGenerateTextBoxControl(TotalControls);
}
最后是获取文本框值的铵钮Click事件:
View Code protected void ButtonGetValue_Click(object sender, EventArgs e)
{
foreach (Control ctl in this.PlaceHolder1.Controls)
{
if (ctl is TextBox)
Response.Write(((TextBox)ctl).Text.Trim () + "<br/>");
}
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章