IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Radios boutons dynamiques dans un tableau - Pas si simple


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Par défaut Radios boutons dynamiques dans un tableau - Pas si simple
    Bonjour a tous,

    J'ai effectué des recherches mais je n'arrive toujours pas à résoudre mon problème, merci pour votre aide.

    Ma page affiche un tableau contenant des résultats. Sur cette page j'ai un bouton qui déclanche une action. Cette action à pour effet de rajouter une ligne à mon tableau (en fin de tableau) avec (entre autre) des checkbox (HTML) dans Différentes cellules.

    Exemple
    __________________
    |Toto | X | . | . | . |
    |Tata | . | X | . | . |
    |Titi | . | . | X | . |
    |Tutu | X | . | . | . |
    |Niou | . | . | . | . | <= La nouvelle ligne
    --------------------
    . = CheckBox non cochée / X = CheckBox cochée

    J'utilise donc des RadioButton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    TableRow AddAnswerRow = new TableRow();
    TableCell UserCell = new TableCell();
    TextBox UserName = new TextBox();
    Name.ID = "UserName";
    NameCell.Controls.Add(UserName);
    AddAnswerRow.Cells.Add(UserCell);
    for (int i = 0; i < NbProposal; i++)
    {
         TableCell ProposalCell = new TableCell();
         RadioButton Answer = new RadioButton();
         Answer.ID = "AddValue" + (i+1).ToString();
         Answer.GroupName = "AddValue";
         ProposalCell.Controls.Add(Answer);
         AddAnswerRow.Cells.Add(ProposalCell);
    }
    AnswerTable.Rows.Add(AddAnswerRow);
    Le problème c'est que je ne trouve pas le moyen de préciser la valeur pour chaque CheckBox / RadioButton.
    Je peux le faire par l'ID mais ça implique que je connaissance à l'avance mes valeurs (ce qui n'est pas impossible en soit) pour faire mon FindControl...

    Je pense que un RadioButtonList pourrait me permettre de faire ce que je souhaite (a savoir définir la Value), mais comme cela s'intègre dans un tableau particulier, je ne vois pas trop comment faire...

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Citation Envoyé par MachProd Voir le message
    Bonjour a tous,

    ... une ligne avec (entre autre) des checkbox (HTML). J'utilise donc des RadioButton:
    Suis pas sur de tout comprendre...

    Mais si jamais, le radiobuttonlist peut tout à fait être intégré à une cellule d'un tableau.

    Tu pourrais procéder comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    TableRow AddAnswerRow = new TableRow();
    TableCell UserCell = new TableCell();
    TextBox UserName = new TextBox();
    Name.ID = "UserName";
    NameCell.Controls.Add(UserName);
    AddAnswerRow.Cells.Add(UserCell);
    
    TableCell ProposalCell = new TableCell();
    
    RadioButtonList _list = new RadioButtonList();
    _list.ID = "MyRadioList";
    _list.Items.Add(new ListItem("MonTexte", "MaValeur"));
    _list.Items.Add(new ListItem("MonTexte2", "MaValeur2"));
    
    ProposalCell.Controls.Add(_list);
    AddAnswerRow.Cells.Add(ProposalCell);
    
    AnswerTable.Rows.Add(AddAnswerRow);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Par défaut Merci mais
    Est ce que apres je peux décider de placer mes controles 'RadioButton' ou je le souhaite (dans des Cells Différentes) ???

    Je vais tester ça ce soir.

    J'ai modifié mon Post pour etre plus précis.

    Merci du coup de main

  4. #4
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Je comprends mieux ce que tu cherches à faire maintenant...

    Tu ne pourras pas placer les éléments de façon séparée dans des cellules différentes.

    Par contre, tu peux jouer avec les attributs RepeatColumn, RepeatLayout et RepeatDirection pour arranger des RadioButton comme tu le souhaites mais tous dans la même cellule.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Par défaut Merci, reste à tester
    Merci pour ton aide,

    Je vais essayer deux choses:

    1. Placer les items de RadioButtonList dans mes cellules

    for (int i = 0; i < NbProposal; i++)
    {
    TableCell ProposalCell = new TableCell();
    ProposalCell.Controls.Add(_list[0]);
    AddAnswerRow.Cells.Add(ProposalCell);
    }

    2. Essayer avec HtmlInputRadioButton. Qui me semble etre le plus adapté. Faut que je regarde les différences.

    Merci en tout cas.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Par défaut Decidement
    Mes tests ne sont pas concluants:

    HTMLInputRadioButton, si j'ajoute plusieurs fois le meme ID àa créer une erreur à l'utilisation d'un FindControls (qu'il s'agisse des mes radios buttons ou d'un autre controle)

    Il n'est pas possible d'éclater les Items de d'une RadioButtonList dans plusieurs celleules.

    --*--

    En fait ce que je cherche à faire c'est trouver un moyen pour ajouter dynamiquement à ma page une liste non inconnu à l'avance de radio bouton placés dans des cellules différentes. Puis dans un second temps savoir qu'elle est la valeur séléctionnée.

    --*--

    En ASP j'aurais fais un code qui aurait généré ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table>
    <tr>
    <td><input type="text" name="UserName" value=""></td>
    <td><input id="MyRadio" name="MyRadio" type="radio" value="1" /></td>
    <td><input id="MyRadio" name="MyRadio" type="radio" value="2" /></td>
    <td><input id="MyRadio" name="MyRadio" type="radio" value="3" /></td>
    </tr>
    </table>
    A la suite de quoi un request.form("MyRadio")... m'aurait permi de trouver la valeur.
    Je pense qu'il doit etre possible d'en faire autant en ASP .Net en bénéficiant des fonctionnalités des controls .net.

    Le problème c'est que ASP .Net semble ne fonctionner qu'avec des ID ça m'oblige donc à donner des ID différents pour chaque radio button. Je ne peux donc pas récupérer simplement la valeur séléctionnée.

    Si vous avez une idée ...

  7. #7
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Il ne te reste plus qu'à créer ton contrôle...

    Pour cela, tu peux hériter du contrôle RadioButtonList en surchargeant la méthode Render comme ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    [IMG]file:///X:/01%20-%20CLIENTS/S/Seduction%20Carrelages/Logo/Logo2008.jpg[/IMG]public class MyRadioList : RadioButtonList
    {
        public MyRadioList() : base()
        {        
        }
     
        protected override void Render(HtmlTextWriter writer)
        {
            int i = 0;
     
            foreach(ListItem _item in this.Items)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID + i);
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "Radio");
                writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID);
                writer.AddAttribute(HtmlTextWriterAttribute.Value, _item.Value);
     
                if(_item.Selected == true)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Checked, "true");
                }
     
                writer.RenderBeginTag(HtmlTextWriterTag.Input);            
                writer.RenderEndTag();
     
                writer.AddAttribute(HtmlTextWriterAttribute.For, this.UniqueID + i);
                writer.RenderBeginTag(HtmlTextWriterTag.Label);
                writer.Write(_item.Text);
     
                writer.RenderEndTag();
     
                i++;
            }
        }
    }
    Puis, tu peux l'utiliser comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <body>
        <form id="form1" runat="server">  
           <table>
            <tr>
                <asp:PlaceHolder ID="myph" runat="server" />
            </tr>
           </table>
     
           <asp:Button ID="test" runat="server" OnClick="test_Click" Text="Click" />
        </form>    
    </body>
    Et côté code-behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    MyRadioList _list;
     
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            _list = new MyRadioList();
            _list.ID = "MyList";
            _list.Items.Add(new ListItem("Test", "1"));
            _list.Items.Add(new ListItem("Test2", "2"));
            _list.Items.Add(new ListItem("Test3", "3"));
            myph.Controls.Add(_list);
        }
     
        protected void test_Click(object sender, EventArgs e)
        {
            string _result = _list.SelectedValue;
        }
    Bon, ce n'est qu'un exemple fait à la va-vite.. mais ça peut te donner une piste

Discussions similaires

  1. [PHP 5.0] Récupérer bouton radio qui sont dans un tableau
    Par bob633 dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2010, 23h27
  2. [xsl-fo]Problème de données dynamiques dans un tableau.
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/05/2007, 10h35
  3. Ajout de ligne dynamique dans un tableau (Incompatible IE)
    Par seb34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 26/05/2006, 11h03
  4. [FLASH 8] Changer label bouton dynamiquement dans une boucle
    Par Malau dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 03/05/2006, 16h55
  5. [VB.NET] - affichage dynamique dans un tableau
    Par karibouxe dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/06/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo