Button dans un repeater [Résolu]

Messages postés
10
Date d'inscription
vendredi 31 août 2007
Dernière intervention
16 octobre 2007
- - Dernière réponse : fguigui
Messages postés
10
Date d'inscription
vendredi 31 août 2007
Dernière intervention
16 octobre 2007
- 16 oct. 2007 à 23:47
                                                                Bonjour à tous,

Dans une webform j'ai un Repeater à l'intérieur duquel j'ai des textbox, label et button du genre :

        <ctrl:RepeatBudgets ID="Repeater1" runat="server">
       
            <tr runat="server" id="row1">
            <td>
                ' />
            </td>
            <td>
                ' />
                '/>
            </td>
            <td>
                ' />
                ' />
            </td>
            <td>
                ' />
                ' />
            </td>
            <td>
                <ctrl:SubExerciceButton runat="server" Text="-" ID="SubExercice"/>
                <ctrl:MajExerciceButton runat="server" Text="Maj" ID="MajButton" CommandArgument='<%#((DateTime)Eval("Exercice")).ToShortDateString()%>' CommandName="Exercice"/>
            </td>
            </tr>
       
        </ctrl:RepeatBudgets>
Je souhaite en cliquant sur le bouton MajBouton, désactiver les labels (visible false) CGLB, CCLB, et CALB et activer les textbox (visible true) CGTB, CCTB, et CATB.

En cliquant sur le bouton MajButton d'une ligne affichée dans la page, on passe bien dans la méthode OnCommand du bouton qui fait :

        protected override void OnCommand(CommandEventArgs e)
        {
            foreach (Control c in this.Parent.Parent.Controls)
            {
                foreach (Control c2 in c.Controls)
                {
                    if (c2 is Label)
                    {
                        c2.Visible = false;
                    }

                    if (c2 is TextBox)
                    {
                        c2.Visible = true;
                    }
                }
            }
            this.Visible = false;
        }

Qui fait bien ce qu'il est sensé faire, cependant, cela ne fonctionne pas, pourquoi ? Que faut-il faire ?

Cordialement
Frédéric
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
17
3
Merci
Bonsoir,

Beurk que c'est pas beau :p

Apparement tu essayes de faire un tableau que l'on puisse passer en mode edition ? pourquoi ne pas essayer d'utiliser le contrôle GridView qui est justement là pour ça.

Sinon, si tu continues de perseverer dans ton truc pas beau, je te conseille de stocker l'index de la ligne sur lequel t'as cliqué dans le viewstate puis de t'abonner à l'événement itemdatabound, et c'est dans cet event que tu gères l'affichage de tel ou tels champs à partir de l'index stocké dans le viewstate. Mais c'est ce que fais le gridview en beaucoup plus propre.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
10
Date d'inscription
vendredi 31 août 2007
Dernière intervention
16 octobre 2007
0
Merci
                                                          Salut Jesus (et tous les autres !),

J'ai vu la GridView c'est très simple à utiliser !
Cependant j'ai 2 petites questions complémentaires :
    - La clé de ma table est composée de 2 champs, en update un de ces champs est modifiable alors que ça ne devrait pas être possible (géré par .Net), pourquoi ?
    - Certains champs sont numeric(10,2), ils sont affichés avec une virgule (",", normal je dois être en culture fr-FR), mais quand je modifie ces valeurs si je ne remplace pas les "," par des "." j'ai un plantage sql :
Erreur de conversion du type de données nvarchar en numeric.
pourquoi ?

Merci encore !
A+
Cordialement
Frédéric
Commenter la réponse de fguigui

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.