У меня есть таблица в UpdatePanel, а под этой таблицей - кнопка, которая динамически добавляет новые строки. Когда я нажимаю кнопку в первый раз, генерируется строка. Но если я нажму на кнопку второй раз, будет создана новая строка, но первая строка исчезнет.UpdatePanel не поддерживает мои динамические элементы управления
Я не очень хорошо с UpdatePanel я не знаю, если они правильны:
Это мой HTML код:
<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Table ID="TableEmail" runat="server" BorderColor="Black" BorderWidth="1">
<asp:TableRow ID="EmailRow1" runat="server" BorderColor="Black" BorderWidth="1">
<asp:TableCell BorderColor="Black" BorderWidth="1"></asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Informations Concessionnaire</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Contacts</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Objectifs</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Retour</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Stock</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">SAV/QUA</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Cliquette</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Paiement</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Concurrence</asp:TableCell>
<asp:TableCell BorderColor="Black" BorderWidth="1">Photos</asp:TableCell>
</asp:TableRow>
</asp:Table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnAddEmail" runat="server" CssClass="boutons" Text="+ Ajouter un destinataire" OnClick="BtnAddEmail_Click" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="BtnAddEmail" />
</Triggers>
</asp:UpdatePanel>
И мой C# код:
public void BtnAddEmail_Click(object sender, EventArgs e)
{
//Instanciation des composants
TextBox TxtEmail = new TextBox();
Label LblEmail = new Label();
CheckBox ChkBox1 = new CheckBox();
CheckBox ChkBox2 = new CheckBox();
CheckBox ChkBox3 = new CheckBox();
CheckBox ChkBox4 = new CheckBox();
CheckBox ChkBox5 = new CheckBox();
CheckBox ChkBox6 = new CheckBox();
CheckBox ChkBox7 = new CheckBox();
CheckBox ChkBox8 = new CheckBox();
CheckBox ChkBox9 = new CheckBox();
CheckBox ChkBox10 = new CheckBox();
//Configuration des composants
LblEmail.Text = "@rapido.fr";
TxtEmail.ID = "TxtEmail1";
ChkBox1.ID = "ChkBox1";
ChkBox2.ID = "ChkBox2";
ChkBox3.ID = "ChkBox3";
ChkBox4.ID = "ChkBox4";
ChkBox5.ID = "ChkBox5";
ChkBox6.ID = "ChkBox6";
ChkBox7.ID = "ChkBox7";
ChkBox8.ID = "ChkBox8";
ChkBox9.ID = "ChkBox9";
ChkBox10.ID = "ChkBox10";
//Instanciation des cellules
TableCell Cell1 = new TableCell();
TableCell Cell2 = new TableCell();
TableCell Cell3 = new TableCell();
TableCell Cell4 = new TableCell();
TableCell Cell5 = new TableCell();
TableCell Cell6 = new TableCell();
TableCell Cell7 = new TableCell();
TableCell Cell8 = new TableCell();
TableCell Cell9 = new TableCell();
TableCell Cell10 = new TableCell();
TableCell Cell11 = new TableCell();
//Configuration des cellules
Cell1.Controls.Add(TxtEmail);
Cell1.Controls.Add(LblEmail);
Cell2.Controls.Add(ChkBox1);
Cell3.Controls.Add(ChkBox2);
Cell4.Controls.Add(ChkBox3);
Cell5.Controls.Add(ChkBox4);
Cell6.Controls.Add(ChkBox5);
Cell7.Controls.Add(ChkBox6);
Cell8.Controls.Add(ChkBox7);
Cell9.Controls.Add(ChkBox8);
Cell10.Controls.Add(ChkBox9);
Cell11.Controls.Add(ChkBox10);
//Instanciation de la ligne
TableRow Row1 = new TableRow();
Row1.Cells.Add(Cell1);
Row1.Cells.Add(Cell2);
Row1.Cells.Add(Cell3);
Row1.Cells.Add(Cell4);
Row1.Cells.Add(Cell5);
Row1.Cells.Add(Cell6);
Row1.Cells.Add(Cell7);
Row1.Cells.Add(Cell8);
Row1.Cells.Add(Cell9);
Row1.Cells.Add(Cell10);
Row1.Cells.Add(Cell11);
//TableEmail.Rows.AddAt(TableEmail.Rows.Count - 1, Row1);
TableEmail.Rows.Add(Row1);
}
Можете ли вы также показать код, который добавляет строки в таблицу? – Andrei
Да, конечно, я отредактировал мое сообщение. – Phobie