Je souhaite créer des cases à cocher de manière dynamique en fonction de la quantité de buses liées à un site.
<tr style="color: white">
<td>Nozzle(s):
</td>
<td id="checkboxes" runat="server">
<asp:PlaceHolder runat="server" ID="controleplaceholder" />
</td>
</tr>
3 Réponses :
déplacer nappell cellt = nouvelle nappeell (); code> & Cochez la case CB = Nouvelle case à cocher (); Code> Intérieur Foreach code> Parce que comme vous ne renonce que et ajouter le même objet à nouveau dans Row.Controls Code> Il ajoutera uniquement un contrôle unique. foreach (var item in check)
{
TableCell cell = new TableCell();
CheckBox cb = new CheckBox();
//set some checkbox properties
cb.Text = "Nozzle " + item;
//add the checkbox to the cell
cell.Controls.Add(cb);
//the cell to the row
row.Controls.Add(cell);
}
Pouvez-vous essayer à chaque fois cb = nouvelle case à cocher (); code> dans foreach boucle?
Vous essayez d'ajouter seulement 1 rangée à votre table. Essayez ceci;
Table table = new Table();
List<string> check = Helpers.getNozzle(Selected.SelectedValue);
foreach (var item in check)
{
TableRow row = new TableRow();
TableCell cell = new TableCell();
CheckBox cb = new CheckBox();
cell.Controls.Add(cb);
cb.Text = "Nozzle " + item;
row.Controls.Add(cell);
table.Controls.Add(row);
}
controleplaceholder.Controls.Add(table);
Est-il possible que votre nom d'article soit toujours le même? Cela signifierait qu'elle l'écrase à chaque fois dans la boucle.
C'est toujours la même référence, déplacez la création à l'intérieur de la boucle
Nope ... Quand je débogé et boucle à travers cela, l'article passe de 1, 2 et 3. Mais
cb.text = "buse" + 3 code> sur écritcb.text = "buse" + 1 et 2 code>Je pensais que cela pourrait être sur l'écriture de la cellule. et j'ai besoin de trouver un moyen de mettre + = cellule dans le code
parce qu'il crée juste 1 cellule mais il doit créer une nouvelle cellule pour chaque article de chèque