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

JavaScript Discussion :

Obtenir les données saisies dans un textbox d'un gridview


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut Obtenir les données saisies dans un textbox d'un gridview
    Bonsoir,
    Je travaille en Aspx et C#.
    J'ai un gridview contenant une colonne textbox. Je souhaite passer à la ligne suivante lorsque l'utilisateur appuie sur Enter. Je réussis bien à "attraper" l'évènement Enter dans le Gridview grâce au javascript, je comptait appeler une méthode C# pour mettre le focus sur la ligne suivante, mais il découle de mes recherches que c'est pas faisable. Y a-t-il un moyen de le faire facilement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript" language="javascript">
    function msg() {
        var grid = document.getElementById("<%= GridView1.ClientID %>");    
        var celTest;
        if (grid.rows.length > 0) {        
                for (i = 1; i < grid.rows.length-1; i++) {
                    celTest = grid.rows[i].cells[3];
                    window.alert(celTest);
                }
            }
        }
    </script>
    Voilà mon code, malheuresement la dernière instruction n'affiche rien (Undefined)

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 228
    Par défaut
    Bonjour,
    le code HTML généré nous aiderait bien plus que ton code serveur.

    Mais pour info, on ne sait jamais, les indices d'un tableau, Array, commence à 0.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    le code complet de toute la page

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    <%@ Page Title="" Language="C#" MasterPageFile="~/SiteMain.Master" AutoEventWireup="true" CodeBehind="SaisieNotes.aspx.cs" Inherits="STIDC.ps.SaisieNotes" %>
    <script runat="server">
     
    </script>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
         <style type="text/css">
            .style2
            {
                width: 100%;
                float: left;
            }
             .style9
             {
                 height: 34px;
             }
             .style16
             {
                 height: 34px;
                 width: 85px;
             }
             .style17
             {
                 width: 85px;
             }
        </style>
        </asp:Content>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="gxrand" runat="server">
     
    <script type="text/javascript" language="javascript">
    function msg() {
        var grid = document.getElementById("<%= GridView1.ClientID %>");    
        var celTest;
        if (grid.rows.length > 0) {        
                for (i = 1; i < grid.rows.length-1; i++) {
                    celTest = grid.rows[i].cells[3];
                    window.alert(celTest);
                }
            }
        }
    </script>
     
     
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate> 
                     <div class="fontCalb">
                      <asp:Label ID="Label1" runat="server" CssClass="allPageHead"  
                             Text="Saisie des Notes"></asp:Label>
     
                    <table align="left" cellspacing="1" class="style2" >
                        <tr>
                            <td align="left" class="style16">
                                Session</td>
                            <td align="left" class="style9">
                                <asp:DropDownList ID="ddAnAca" runat="server" AutoPostBack="True" Height="27px" 
                                    Width="250px" AppendDataBoundItems="True">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left" class="style16">
                                Semestre</td>
                            <td align="left" class="style9">
                                <asp:DropDownList ID="ddSem" runat="server" AutoPostBack="True" Height="16px" 
                                    onselectedindexchanged="ddSem_SelectedIndexChanged" Width="250px" 
                                    AppendDataBoundItems="True">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left" class="style16">
                                UEs</td>
                            <td align="left" class="style9">
                                <asp:DropDownList ID="ddUE" runat="server" AppendDataBoundItems="True" 
                                    AutoPostBack="True" Height="17px" 
                                    onselectedindexchanged="ddUE_SelectedIndexChanged" Width="248px">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left" class="style16">
                                Matières</td>
                            <td align="left" class="style9">
                                <asp:DropDownList ID="ddMat" runat="server" AppendDataBoundItems="True" 
                                    AutoPostBack="True" Height="16px" 
                                    onselectedindexchanged="ddMat_SelectedIndexChanged" Width="250px">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left" class="style16">
                                Type d'Evaluation</td>
                            <td align="left" class="style9">
                                <asp:DropDownList ID="ddType" runat="server" AutoPostBack="True" Height="16px" 
                                    Width="252px" onselectedindexchanged="ddType_SelectedIndexChanged" 
                                    AppendDataBoundItems="True">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left" class="style17">
                                &nbsp;</td>
                            <td align="left">
                                <asp:Label ID="lblMsg" runat="server" Font-Bold="True" style="font-weight: 700"></asp:Label>
                                <br />
                            </td>
                        </tr>
                        <tr>
                            <td align="left" colspan="2">
                                <b>
                                <asp:Label ID="Label18" runat="server" CssClass="lblSubHeading" 
                                    meta:resourcekey="Label1Resource1" Text="Liste des Etudiants"></asp:Label>
                                <br />
                                <b>
                                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                                    onrowediting="GridView1_RowEditing" 
                                    onselectedindexchanged="GridView1_SelectedIndexChanged" Width="748px">
                                    <Columns>
                                        <asp:TemplateField HeaderText="Choisir">
                                            <ItemTemplate>
                                                <asp:CheckBox ID="chkRow" runat="server" />
                                            </ItemTemplate>
                                            <HeaderStyle Width="12%" />
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderText="Matricule">
                                            <ItemTemplate>
                                                <asp:Label ID="lblMatEtu" runat="server" Text='<%#bind("Matricule")%>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderText="Nom">
                                            <ItemTemplate>
                                                <asp:Label ID="lblNom" runat="server" Text='<%#bind("nomPrenom")%>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderText="Note">
                                            <ItemTemplate>
                                                <asp:TextBox ID="txtBrcodeEC" runat="server" SkinID="none" Width="40px" 
                                onKeyPress="if (event.keyCode == 13) msg()" />
                                                </cc1:FilteredTextBoxExtender>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:CommandField HeaderText="Modifier" SelectText="Choisir" ShowHeader="True" 
                                            ShowSelectButton="True" />
                                    </Columns>
                                </asp:GridView>
                                <br />
                                </b>
                                </b>
                                <table align="left" cellpadding="0" class="tableButton">
                                    <tr>
                                        <td style=" width:140px">
                                            <b>
                                            <asp:Button ID="btTout" runat="server" Height="24px" onclick="Button1_Click" 
                                                Text="Tous" />
                                            </b>
                                        </td>
                                        <td style=" width:140px">
                                            <asp:Button ID="btnSave" runat="server" onclick="btnSave_Click" 
                                                Text="Enregistrer" />
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
     
              </div></ContentTemplate></asp:UpdatePanel></asp:Content>

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    non on ne veux pas le code asp on veux le source dans le navigateur

    c'est ça qui est interprété par le navigateur pas le code du serveur

    A+JYT

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    le code HTML en pièce-jointe.

    Merci de t’intéresser à mon problème
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par rosert
    le code HTML en pièce-jointe.
    code Html.aspx
    Il faudrait peut-être que tu saches différencier le code HTML et le code serveur !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    non on ne veux pas le code asp on veux le source dans le navigateur

    c'est ça qui est interprété par le navigateur pas le code du serveur

    A+JYT
    il me semblait que c'était clair
    A+JYT

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    De toute évidence, je ne sais pas comment obtenir le code Html d'une page Aspx. Je croyais qu'il fallait afficher le code source de la page tout simplement.

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    finalement, je lance l'évènement clic d'un bouton quelconque avec JS. Dans l'évènement clic du dis-bouton, j'exécute le code serveur qui me permet de mettre le focus sur la ligne que je veux dans le gridview. Donc finalement résolu.

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Par défaut
    Citation Envoyé par rosert Voir le message
    De toute évidence, je ne sais pas comment obtenir le code Html d'une page Aspx. Je croyais qu'il fallait afficher le code source de la page tout simplement.
    Nan c'est bon, tu as bien fait, mais tu aurais pu mettre ici le code de ta page, au lieu d'avoir un fichier machin.aspx

  11. #11
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    ben j'ai affiché le code source de la page web depuis mon navigateur. je croyais que c'était la bonne méthode..

  12. #12
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    c'est le nom du fichier qui nous a induit en erreur
    le .aspx nous a fait croire qu'l s'agissait du code source serveur
    nous n'avons donc pas ouvert le fichier

    je n'ai pas eu le temps de me pencher sur ton problème.
    mais tu peux déjà faire deux chose simple

    la première ajouter l'attribut tabindex sur tes inputs en les numérotant de 0 a n l'utilisateur peu passer de l'un à l'autre en apuyant sur TAB

    la seconde ajouter un id qui à pour valeur 'input' + la valeur de tabindex
    du coup dans ta méthode onkeypress associé à chaque input tu peux récupérer le tabindex de l'input var index = parseInt(this.tabindex); tu peux alors récupérer l'input suivant en faisantdcument.getElementById('input' + (index+ 1)).focus();//attention (index + 1) est entre parenthèsesA+JYT

  13. #13
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    Euh mes connaissances en web ne sont pas très poussées, je suis plus winform.
    je précise quand même que les lignes de mon gridview sont générées grâce à une requête qui prend les info dans le BD.
    De plus, la méthode onKeyPress, je ne l'ai pas trouvé pour le gridview, dois-je l'écrire moi-même?

  14. #14
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je ne sais absolument pas comment est fait ton serveur
    mais dans ton html tu as
    il te faut faire en sorte que ton code asp te génère pour chaque input (avec un id qui ogment de 1 en 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input tabindx="0" id="input0" onkeypress="return myFunction(this, window.event);"...>
    dans l'entête de ta page tu ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script ....>
    function myFunction(element, event) {
     if (event.keyCode == 13) {
      var index = parseInt(this.tabindex);
      document.getElementById('input' + (index+ 1)).focus();//attention (index + 1) est entre parenthèses
      return false;
     }
     return true;
    }
    </script>
    A+JYT

  15. #15
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 70
    Par défaut
    le code du GridView

    Code asp : 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
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                                    onrowediting="GridView1_RowEditing" 
                                    onselectedindexchanged="GridView1_SelectedIndexChanged" Width="748px">
                                    <Columns>
                                        <asp:TemplateField HeaderText="id">
                                            <ItemTemplate>
                                                <asp:Label ID="lblId" runat="server" Text='<%#bind("id")%>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderText="Nom">
                                            <ItemTemplate>
                                                <asp:Label ID="lblNom" runat="server" Text='<%#bind("nom")%>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderText="Note">
                                            <ItemTemplate>
                                                <asp:TextBox ID="txtBrcodeEC" runat="server" SkinID="none" Width="40px" 
                                onKeyPress="if (event.keyCode == 13) execClicBtn()" />
                                                </cc1:FilteredTextBoxExtender>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                </asp:GridView>

    comment définir l'ID du textbox alors que les lignes du gridview sont générées depuis la méthode ci-dessous:

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void gdBind()
            {
                DataTable dt = DAL.fillDtQry("select id, nom from tbl");
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }

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

Discussions similaires

  1. type de données saisies dans un textbox
    Par etoile_de_vie dans le forum C#
    Réponses: 2
    Dernier message: 23/09/2008, 14h54
  2. Réponses: 3
    Dernier message: 05/09/2008, 08h41
  3. Réponses: 2
    Dernier message: 19/06/2008, 21h04
  4. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 16h22
  5. Réponses: 8
    Dernier message: 19/05/2005, 17h03

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