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 :

GridView : Séléctionner une valeur en cliquant dessus.


Sujet :

ASP.NET

  1. #1
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut GridView : Séléctionner une valeur en cliquant dessus.
    Bonjour,

    J'ai un GridView sur lequel l'utilisateur a besoin de copier certaines valeurs.

    Pour l'aider dans cette tâche j'aimerai lorsque qu'il effectue un clique droit sur cette valeur qu'elle se séléctionne pour qu'il n'ai ensuite qu'a faire un "Ctrl+C".

    Voici mon GridView :

    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
    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource2" AlternatingRowStyle-ForeColor="White" 
            RowStyle-ForeColor="#336600" HeaderStyle-ForeColor="White" 
            AlternatingRowStyle-BackColor="#99CC00" HeaderStyle-BackColor="#8EAD2E" 
            HeaderStyle-Height="40" AlternatingRowStyle-BorderStyle="NotSet" 
            AllowSorting="True">
        <EmptyDataTemplate>
        <asp:TextBox ID="TextBox1" runat="server" Text="Aucune demande correspondant aux critères" Width="100%" />
        </EmptyDataTemplate>
    <RowStyle ForeColor="#336600"></RowStyle>
        <Columns>
            <asp:BoundField DataField="Date/Heure" HeaderText="Date/Heure" 
                SortExpression="Date/Heure" ItemStyle-Width="200" >
    <ItemStyle Width="200px"></ItemStyle>
            </asp:BoundField>
            <asp:BoundField DataField="Nom du fichier" HeaderText="Nom du fichier" 
                SortExpression="Nom du fichier" ItemStyle-Width="200" >
    <ItemStyle Width="200px"></ItemStyle>
            </asp:BoundField>
            <asp:BoundField DataField="Emanateur" HeaderText="Émanateur" 
                SortExpression="Emanateur" ItemStyle-Width="200" >
    <ItemStyle Width="200px"></ItemStyle>
            </asp:BoundField>
            <asp:BoundField DataField="Entreprise emanatrice" 
                HeaderText="Entreprise émanatrice" SortExpression="Entreprise emanatrice" 
                ItemStyle-Width="200" >
    <ItemStyle Width="200px"></ItemStyle>
            </asp:BoundField>
            <asp:BoundField DataField="Clef de chiffrement" 
                HeaderText="Clef de chiffrement" SortExpression="Clef de chiffrement" >
            <ItemStyle Font-Bold="True"  Width="200" />
            </asp:BoundField>
        </Columns>

    Est-ce possible de réaliser cela? Peut-on le faire par un autre moyen que l'ajax?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    Bonjour,

    voici une solution qui vaut ce qu'elle vaut, pas parfait mais ça fonctionne.

    il faut remplacer les BoundField par des TextBox, et là on peut utiliser un this.select() pour sélectionner le contenu,
    le select() ne fonctionne que sur des balises input, du fait que le BoundField est transformé en texte entre balise td le select() ne peut pas fonctionner.

    ensuite il faut mettre en form le textbox (readonly ...) pour simuler un label

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Columns>
       <asp:TemplateField>
          <ItemTemplate>
             <asp:TextBox ID="TextBox2" runat="server" text='<%# Bind("lechamp") %>' onfocus="this.select();"></asp:TextBox>
          </ItemTemplate>
       </asp:TemplateField>
    </Columns>

  3. #3
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut
    Merci c'est exactement ce que je cherchais.

    Par contre sais tu comment je peux faire en sorte que l'apparence de mon tableau s'affiche aussi pour ces textbox?

    J'avai coloré une ligne sur 2 or les TextBox sont toutes de la même couleur à savoir grise.



    (ps : désolé pour le gommage grossier des données mais je ne peux me permettre de les laisser)
    Images attachées Images attachées  

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    re

    voic une solution, tu poses les couleurs ligne à ligne dans le RowCreated en alternant avec modulo sur le numéro de ligne

    pour l'application des couleurs le mieux c'est d'utiliser un css avec attributes.add("cssclasse","laclassecss");

    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
     
        protected void GridView2_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int i = ((GridView)sender).Rows.Count;
                if ((i % 2) == 0)
                {
                    e.Row.BackColor = System.Drawing.Color.LightPink;
                    e.Row.ForeColor = System.Drawing.Color.Maroon;
                    TextBox tb = (TextBox)e.Row.FindControl("TextBox2");
                    tb.ForeColor = System.Drawing.Color.Maroon;
                    tb.BackColor = System.Drawing.Color.LightPink;
                    tb.Attributes.Add("style", "border:none");
                }
                else
                {
                    e.Row.BackColor = System.Drawing.Color.Aqua;
                    e.Row.ForeColor = System.Drawing.Color.Bisque;
                    TextBox tb = (TextBox)e.Row.FindControl("TextBox2");
                    tb.ForeColor = System.Drawing.Color.Bisque; ;
                    tb.BackColor = System.Drawing.Color.Aqua;
                    tb.Attributes.Add("style", "border:none");
                }
            }
        }
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Changer la valeur d'une cellule en cliquant dessus
    Par Riri80 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2009, 16h57
  2. recuperer une ligne d'une collection en cliquant dessus
    Par john_wili dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/02/2009, 11h34
  3. [PHP 5.1] Affecter une valeur en cliquant sur un bouton
    Par pasbonte dans le forum Langage
    Réponses: 7
    Dernier message: 28/12/2008, 10h30
  4. Selectionner une image en cliquant dessus
    Par thesam73 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 04/03/2008, 13h56
  5. Réponses: 4
    Dernier message: 01/08/2007, 15h35

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