/ / Dodaj nowy wiersz w tabeli w kodzie problemu - asp.net

Dodaj nowy wiersz w tabeli w kodzie za problemem - asp.net

Mam stolik na bolenie.strony i chcę wstawić nowe wiersze. Staram się dodawać za każdym kliknięciem przycisku nowy wiersz, który zawiera komórkę z FileUpload, ale działa tylko za pierwszym razem. Kiedy następnym razem kliknę, w moim kodzie za tabelą.

    <asp:Panel ID="pnlImages" runat="server" BackColor="Gray" Height="500">
<table id="tblImages" runat="server" width="100%">
<tr>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
</tr>
<tr>
<td align="right" width="100">
<asp:ImageButton ID="imbAddImage" runat="server" ImageUrl="images/plus.png"
Width="48" Height="48"  OnClick="imbAddImage_Click"/>
</td>
</tr>
</table>
</asp:Panel>

To jest kod po kliknięciu przycisku

protected void imbAddImage_Click(object sender, ImageClickEventArgs e)
{
System.Web.UI.HtmlControls.HtmlTable tbl = (System.Web.UI.HtmlControls.HtmlTable)this.FindControl("tblImages");
System.Web.UI.HtmlControls.HtmlTableRow row = new System.Web.UI.HtmlControls.HtmlTableRow();
System.Web.UI.HtmlControls.HtmlTableCell cell = new System.Web.UI.HtmlControls.HtmlTableCell();
FileUpload temp = new FileUpload();
cell.Controls.Add(temp);
row.Controls.Add(cell); ;
int a=tbl.Controls.Count;
tbl.Controls.AddAt(a-1, row);
}

Ale problemem jest to, że zawsze jest 2. Czy ktoś może pomóc?

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli chodzi o formanty dynamiczne, musisz dodać je do każdego posta z powrotem.

Po kliknięciu moduł obsługi zdarzeń dodaje tylko najnowszy plik i nigdzie nie zapisujesz poprzednich. Powinieneś dodać je do ViewState i wysłać zapytanie do ViewState, aby je odzyskać.

Widzieć Ten artykuł Szczegółowe objaśnienie ViewState.