如何在单击按钮时向表中添加文本框
本文关键字:添加 文本 单击 按钮 | 更新日期: 2023-09-27 18:33:52
我想在单击按钮时在其中添加一个新单元格和一个文本框。 但是当我单击当前行中的按钮时,它的单元格和文本框被删除并添加了新单元格和文本框。
标记:
<form id="form1" runat="server">
<div>
<asp:Panel ID="pnlForTextBoxes" runat="server">
</asp:Panel>
<asp:DropDownList ID="ddlNumbers" runat="server" Height="16px" Width="143px">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
</asp:DropDownList>`enter code here`
<asp:Table ID="myActualTable" runat="server">
</asp:Table>
<br />
<asp:Button ID="cmdAddTextBox" runat="server" Text="Add" OnClick="cmdAddTextBox_Click" />
</div>
</form>
法典:
protected void cmdAddTextBox_Click(object sender, EventArgs e)
{
TableRow myRow = new TableRow();
myRow.ID = "row" + ddlNumbers.SelectedValue.ToString();
TableCell myCell = new TableCell();
myCell.ID = "cell" + ddlNumbers.SelectedValue.ToString();
TextBox myTextBox = new TextBox();
myTextBox.ID = "txt" + ddlNumbers.SelectedValue.ToString();
myTextBox.Text = "TextBox number " + ddlNumbers.SelectedValue.ToString();
myCell.Controls.Add(myTextBox);
myRow.Cells.Add(myCell);
myActualTable.Rows.Add(myRow);
myTextBox.Dispose();
myCell.Dispose();
myRow.Dispose();
}
发生这种情况是因为旧的文本框和单元格未显示在标记上。如您所知,每个回发页对象都是创建的,并且它不知道页面上的最后更改。有一个解决方法。在页面加载事件中,您必须检查,如果这已经是回发,请检查您的视图状态,或者一些隐藏的字段计数器,其中包含以前的文本框和单元格,然后再次重新创建它们。最好指定上次指定的名称和 id,以允许视图状态恢复值。只有在那之后,您才能创建新的 onem 而不会丢失以前的。