0
votes

Le code ne crée que la dernière case à cocher, que dois-je faire différemment ou ajouter?

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>


5 commentaires

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 sur écrit cb.text = "buse" + 1 et 2


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


3 Réponses :


1
votes

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);
}


0 commentaires

0
votes

Pouvez-vous essayer à chaque fois cb = nouvelle case à cocher (); dans foreach boucle? XXX


0 commentaires

0
votes

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);


0 commentaires