我正在尝试添加控件,但它会被覆盖。
在下图中如果单击“添加更多签证”按钮,我想显示所有这些字段。
代码:
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<div id="divreg" runat="server">
<table id="tbl" runat="server">
<tr>
<td class="style8"> Visa Number:</td>
<td class="style20"><asp:TextBox ID="txtUser" Width="160px" runat="server"/></td>
<td class="style22"> Country Name:</td>
<td class="style23">
<asp:DropDownList ID="dropCountry" Width="165px" runat="server"> </asp:DropDownList></td>
</tr>
<tr>
<td class="style22"> Type of Visa:</td>
<td class="style23"><asp:DropDownList ID="dropVisa" Width="165px" runat="server"> </asp:DropDownList></td>
<td class="style22"> Type of Entry:</td>
<td class="style23">
<asp:DropDownList ID="dropEntry" Width="165px" runat="server">
</asp:DropDownList> </td>
</tr>
<tr>
<td class="style8"> Expiry Date</td>
<td class="style20">
<BDP:BasicDatePicker ID="BasicDatePicker4" runat="server" onselectionchanged="BasicDatePicker2_SelectionChanged"
AutoPostBack="True" />
</td>
<td class="style22"><asp:Button ID="btnAddVisa" Text="Add More Visa" runat="server" OnClick="btnAddVisa_Click" /> </td>
</tr></table></div>
</asp:PlaceHolder>
代码.cs:
static int i = 0;
protected void btnAddVisa_Click(object sender, EventArgs e)
{
i++;
for (int j = 0; j <= i; j++)
{
PlaceHolder1.Controls.Add(divReg);
PlaceHolder1.Controls.Add(new LiteralControl("<BR>"));
}
}
图像: 在这里,我点击Add More Visa按钮我想再次显示所有这些字段
有什么想法吗?提前致谢
答案 0 :(得分:0)
创建用户控件以表示添加的所有内容,然后将控件作为一个整体添加。确保使用LoadControl方法而不是控件的构造函数。您还需要在ViewState中保留足够的信息以在Page_Load上重新创建控件。在你的情况下,控件的数量应该足够了。