动态添加控件,如何实现点击一次添加一个,再次点击再增加一个。。。

jarodzhao 2009-03-11 11:50:12
                                <table style="width: 100%" border="1" runat="server" id="mx">
<tr>
<td align="left" style="width: 100px;">
姓名:
</td>
<td align="left">
<asp:TextBox ID="TextBox23" CssClass="underline" Width="100px" runat="server"></asp:TextBox>
</td>
<td align="left" colspan="2">
身份证号:
<asp:TextBox ID="TextBox24" runat="server"
CssClass="underline" Width="100px"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Font-Size="12px" Text="添加一行" OnClick="AddNew" />
</td>
</tr>
</table>


        protected void AddNew(object sender, EventArgs e)
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell;
TextBox tb;

cell = new HtmlTableCell();
cell.InnerText = "姓名:";
row.Cells.Add(cell);

cell = new HtmlTableCell();
tb = new TextBox();
tb.ID = "tb" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);
row.Cells.Add(cell);

cell = new HtmlTableCell();
tb = new TextBox();
tb.ID = "tb_" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);

cell = new HtmlTableCell();
cell.InnerText = "身份证号:";
tb = new TextBox();
tb.ID = "tb__" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);


row.Cells.Add(cell);
mx.Rows.Add(row);


}


我想在每次点击“添加一行”的按钮后就添加一个新行,点几次,就添加几行
但是上面的代码只是实现了一行,第二次点击时候就不添加。。。。
...全文
342 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyzs2001 2010-05-19
  • 打赏
  • 举报
回复
mark!!!!!!!!!!!!!
cnidb 2009-03-12
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["Count"] != null)
{
for (int i = 0; i < Convert.ToInt16(ViewState["Count"]); i++)
{
AddRow();
}
}
if (!IsPostBack)
{
ViewState["Count"] = 0;
}
}
public void AddRow(){
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell;
TextBox tb;

cell = new HtmlTableCell();
cell.InnerText = "姓名:";
row.Cells.Add(cell);

cell = new HtmlTableCell();
tb = new TextBox();
tb.ID = "tb" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);
row.Cells.Add(cell);

cell = new HtmlTableCell();
tb = new TextBox();
tb.ID = "tb_" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);

cell = new HtmlTableCell();
cell.InnerText = "身份证号:";
tb = new TextBox();
tb.ID = "tb__" + mx.Rows.Count.ToString();
tb.CssClass = "underline";
tb.Width = Unit.Pixel(100);
tb.Font.Size = FontUnit.Point(9);
cell.Controls.Add(tb);


row.Cells.Add(cell);
mx.Rows.Add(row);
}
protected void AddNew(object sender, EventArgs e)
{
AddRow();
ViewState["Count"] = Convert.ToInt16(ViewState["Count"]) + 1;
}
三碗猪脚 2009-03-12
  • 打赏
  • 举报
回复
比较麻烦的,控件的状态要保存~~~~~~~~
orain 2009-03-12
  • 打赏
  • 举报
回复
其实不用提交到后台去处理,在前台用 JavaScript 很容易就实现了,增加只要复制第一行然后追加到表格尾部就可以了,删除直接移除表格行。提交的时候把要搜集的数据整理一下,在后台就可以取到值了。
cnidb 2009-03-12
  • 打赏
  • 举报
回复
MSDN上说将控件的EnableViewState 设置为false即可,但我这里就是没有成功;也许你可以试试先

this.mx.EnableViewState = false;
步慢生错 2009-03-11
  • 打赏
  • 举报
回复
table- -
我帮不了你。本来还想说appandChild,creatElement之类的。。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧