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 :

Repeater + Formulaire (recup infos) = Javascript ?


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut Repeater + Formulaire (recup infos) = Javascript ?
    Bijour Bijour,

    Je vous explique mon problème,
    j'ai un formulaire généré par un repeater, (une fiche produit pour ce faire une idée, donc avec references photos et spécifications), mais je ne sais comment récuperer mes infos qui sont modifiable pour faire un update par exemple.
    Il y a une méthode pour faire ca en directement en c# ou je dois passer par le javascript ?

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Peut-être devrais-tu consulter cette section de la FAQ: http://dotnet.developpez.com/faq/asp...orkingwithdata

    Le reste aussi accessoirement

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par jiryaia Voir le message
    j'ai un formulaire généré par un repeater, (une fiche produit pour ce faire une idée, donc avec references photos et spécifications), mais je ne sais comment récuperer mes infos qui sont modifiable pour faire un update par exemple.

    Salut,

    un repeater n'est pas vraiment fait pour éditer des données, mais plus pour les afficher.

    Si le but est d'afficher tes données sous forme tabulaire, le mieux est d'utiliser le composant ListView du framework 3.5 (ou le DataList/GridView en 2.0)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Salut à vous,

    Je me suis mal exprimé, mais je pense que Philippe Vialatte a compris ce que je voulais faire.
    Mon problème n'est pas d'utiliser le repeater, mais de récupérer les infos aprés l'avoir utilisé, et il faut croire que je mis prend de la mauvaise façon.

    Je trouvai le repeater sympa du fait que je n'ai jamais le meme nombre de spécification pour chaque produit, et donc je croyai pouvoir esquiver 1 boucle ou 2, mais nan...

    La du coup je vais faire sans databind, nommer mes TextBox dynamiquement en fonction du nombre de spec, comme ca je pourrai i avoir accés directement, c'est ca l'idée ?

    En vous remerciant, Bonne journée a tous

  5. #5
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par jiryaia Voir le message
    La du coup je vais faire sans databind, nommer mes TextBox dynamiquement en fonction du nombre de spec, comme ca je pourrai i avoir accés directement, c'est ca l'idée ?
    Nope, l'idée, ce serait de garder 80% de ce que tu fais, mais d'utiliser un ListView à la place, pour garder la possibilité de travailler sur un template

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Okayyy

    Je voi le principe, mais pour l'adapter :

    Dans mon ListView, juste un template, avec dedans;
    -Un DropDownList que je dois remplir a chaque fois et selectionner un item,
    -Trois TextBox

    j'accede à mes données,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataTable tabspec;
                ConnDB conns = new ConnDB();
                tabspec = conns.SelectSpec(CodeProduit);
                this.ListViewSpec.DataSource = tabspec;
                this.ListViewSpec.DataBind();
    Et la en fait avec mon repeater je passais par un OnDataBound,
    pour remplir mes TextBox et mon DropDownList mais,
    apparement le ListView n'est pas fan de mon DataBinder, normal ?:

    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
     
    protected void ListViewSpec_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            using (ListViewDataItem listViewDataItem = (ListViewDataItem)e.Item)
            {
                if (listViewDataItem != null)
                {
     
                    String StringLabelCodeSpecification = DataBinder.Eval(e.Item.DataItem, "CodeSpecification").ToString();
                    String StringLabelSpec = DataBinder.Eval(e.Item.DataItem, "Spec").ToString();
                    String StringLabelSpecification = DataBinder.Eval(e.Item.DataItem, "Specification").ToString();
                    String StringLabelLPS = DataBinder.Eval(e.Item.DataItem, "CodeLPS").ToString();
                    //Repeater ProduitRepeater = (Repeater)e.Item.FindControl("ProduitRepeater");
                    DropDownList DropDownListSpecName = (DropDownList)e.Item.FindControl("DropDownListSpecName");
                    TextBox TextBoxSpec = (TextBox)e.Item.FindControl("TextBoxSpec");
                    TextBox TextBoxCodeSpec = (TextBox)e.Item.FindControl("TextBoxCodeSpec");
                    //Contenu du DropDownList courant
                    //DataTable tblspecification;
                    //ConnDB connsp = new ConnDB();
                    //tblspecification = connsp.SelectAllSpecification();
                    //foreach (DataRow r5 in tblspecification.Rows)
                    //{
                    //    if (r5["CodeSpecification"].ToString() != "")
                    //    {
                    //        DropDownListSpecName.Items.Add(new ListItem(r5["Specification"].ToString(), r5["CodeSpecification"].ToString()));
                    //    }
                    //}
                    //TextBoxSpec.Text = Server.HtmlDecode(StringLabelSpec);
                    //TextBoxSpec.Text = Server.HtmlEncode(StringLabelSpec);
     
                    //TextBoxCodeSpec.Text = StringLabelCodeSpecification;
                    //DropDownListSpecName.SelectedValue = StringLabelCodeSpecification;
                }
            }
        }
    Mais dans le principe, c'est ca donc?
    Et aprés il faut que je trouve la méthode pour récuperer mes templates ?

    Je comprend vite hein, mais faut m'expliquer longtemps
    Merci d'avance.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Pour ce qui ce posent la meme question que moi pour les Binder sur ListView :

    pour un repeater on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String StringLabelCodeSpecification = DataBinder.Eval(e.Item.DataItem, "CodeSpecification").ToString();
    pour un ListView on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String StringLabelCodeSpecification = ((DataRowView)((ListViewDataItem)e.Item).DataItem)["CodeSpecification"].ToString();
    Je continu voir pour la lecture et modification template.

  8. #8
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Je t'écris en mp car je ne veux pas te contredire sur le fofo mais je ne suis pas d'accord avec toi sur le point suivant.

    Citation Envoyé par Philippe Vialatte Voir le message
    un repeater n'est pas vraiment fait pour éditer des données, mais plus pour les afficher.
    C'est vrai que ça n'est pas le plus simple mais dans certains cas on a pas d'autre choix que d'utiliser le repeater et ce, y compris pour enregistrer les données et ce, en particuliser pour les composants web personnalisés.

    ++

    Laurent

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Salut Laurent,

    Tu aurais un exemple de cas ou tu ne peux que utiliser un repeater, avec un update de donnée ?
    Je ne maitrise pas vraiment le repeater et le listview, mais c'est vrai que de ce que j'ai pu voir dans l'aide, il a beaucoup plus de template pour accéder au champ généré que pour le repeater.

    Pour l'instant j'ai une page avec un repeater et une autre avec un listview et je ne fais que afficher pour le moment, je n'ai pas eu le temps de regarder comment on accede au donnée encore ... :5.

    Comment tu te reperer dans ton repeater en fait ?
    ( pour le listiew je vais commencer par l'aide + fofo, je viendrais pleurer ou poster la solution aprés )

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Bien le bonjour

    Ca y est j'ai résolut mon problème de ListView editable, je ne pense pas avoir utilisé la méthode conseillé mais bon ca fonctionne ...
    Donc pour ceux qui cherchent :

    Il y a pas mal de tuto sur le net mais beaucoup n'explique pas la chose de la meme façon, de mon coté il me manquait surtout ca pour avancer :

    dans la balise du listview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OnItemEditing="ListViewSpec_ItemEditing"
    Codebehind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected void ListViewSpec_ItemEditing(Object sender, ListViewEditEventArgs e)
        {
            //Mise a Jour d'un champ Specification : CodeLPS, CodeSpecification, Specification
            ListViewItem item = ListViewSpec.Items[e.NewEditIndex];
            DropDownList DropDownListSpecName = (DropDownList)item.FindControl("DropDownListSpecName");
            TextBox TextBoxSpec = (TextBox)item.FindControl("TextBoxSpec");
            TextBox TextBoxLPS = (TextBox)item.FindControl("TextBoxLPS");
            ConnDB conn = new ConnDB();
            conn.MajThisSpec(TextBoxLPS.Text, DropDownListSpecName.SelectedValue, TextBoxSpec.Text);
        }
    et paf tout est ok maintenant.

    Je me permet juste une petite question supplémentaire qui n'a pas vraiment sa place ici, mais c'est dans l'élan
    J'ai fait une class pour mes connexion bdd , donc dans le constructeur, l'ouverture de la connexion ect...
    Aprés il ya mes fonctions, et je m'étais dis tiens ! jvais fermer la connexion dans le destructeur .... mais je ne trouve pas comment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ~ConnDB()  // destructor
        {
            conn.Close();
        }
    Ca par exemple ca marche pas ...

    Bref, en vous remerciant tous pour votre aide,
    a la prochaine !

  11. #11
    CUCARACHA
    Invité(e)
    Par défaut
    Peut-être serait-il temps que tu passes à Entity Framework non ?

    ++

    Laurent

  12. #12
    CUCARACHA
    Invité(e)
    Par défaut
    La connexion à la DB tu la fait au début de ton traitement et tu la ferme à la fin, dans le destructeur, à la rigueur tu peux mettre oConn = null. Mais si tu l'as correctement fermée, le garbage collector s'en chargera très bien (D'ailleurs je me demande s'il n'est pas aussi capable de fermer la connexion avant de la détruire)

  13. #13
    CUCARACHA
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    using(oConn) {
     
    try {
    oConn.open();
     
    } catch ... {
     
    } finally {
    oConn.close();
    }
    }
    sinon un truc comme ça ça peut être pas mal...

  14. #14
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    euh...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using(oConn) {
    oConn.open();
    //blablabla
    }
    Est tout à fait suffisant

    Lorsque la connection est disposée, elle est fermée avant d'être détruite

    Et une exception ne remets pas en cause le dispose

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Bonjour a tous,

    Effectivement j'avai deja entendu parlé du garbage qui cloture aussi les connexions, mais travaillant en asp 1 en vbscript (avant de passer au .net) et dans ce temps la, il fallait faire attention aux ouvertures/fermetures des connexions.
    Mais si je comprend bien plus besoin de fermer ni quoi que ce soit.

    Merci a tous !!

    Bonne journée

  16. #16
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Fait quand même attention, je n'y ai jamais été confronté mais il me semble qu'il existe certains cas où le GC ne fonctionne pas au top...

    ++

    Laurent

  17. #17
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par jiryaia Voir le message
    Effectivement j'avai deja entendu parlé du garbage qui cloture aussi les connexions, mais travaillant en asp 1 en vbscript (avant de passer au .net) et dans ce temps la, il fallait faire attention aux ouvertures/fermetures des connexions.
    Mais si je comprend bien plus besoin de fermer ni quoi que ce soit.
    Euh...non, pas vraiment, si tu utilises un using, il va te cloturer la connection, mais si tu utilise ta connection a l'arrache, il ne vas pas te la cloturer tout seul

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  18. #18
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Philippe Vialatte Voir le message
    Euh...non, pas vraiment, si tu utilises un using, il va te cloturer la connection, mais si tu utilise ta connection a l'arrache, il ne vas pas te la cloturer tout seul
    Elle restera même active (pas forcement ouverte) bien longtemps après que la page ait été affichée. Les connections on une certaine durée de vie. Le pool de IIS garde la connexion active dans le "pool" et le Serveur SQL laisse le port d'écoute ouvert aussi. Pour l'avoir vécu, si trop de connections sont mal fermées on peut saturer le pool et le serveur SQL. Dans le premier cas l'application plante dans le deuxième c'est la base de données.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Par défaut
    Bonjour a tous,

    Oui c'est aussi du vécu, c'est pour ca que je commencais à m'en inquiéter.
    Si possible j'aimerai garder mon system de connection comme ca :

    class:
    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
     
    public class ConnDB
    {
        DbDataAdapter dtadap;
        DbConnection conn;
     
    	public ConnDB()
    	{
            //Creation de l'adapter
            DbProviderFactory dbpf = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["ProviderStingToto"].ConnectionString);
            conn = dbpf.CreateConnection();
            dtadap = dbpf.CreateDataAdapter();
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionStringAToto"].ConnectionString;
            conn.Open();
            dtadap.SelectCommand = conn.CreateCommand();
            dtadap.InsertCommand = conn.CreateCommand();
            dtadap.UpdateCommand = conn.CreateCommand();
    	}
        // Mes fonctions de requete
        public DataTable SelectCategorieTLP()
        {
            DataTable tabtlp = new DataTable();
            dtadap.SelectCommand.CommandText = "SELECT * FROM Categorie WHERE obsolete= false";
            dtadap.SelectCommand.ExecuteNonQuery();
            dtadap.Fill(tabtlp);
            return (tabtlp);
        }
    }
    et j'utilise le tout comme ca dans mon codebehind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataTable tabtlp;
            ConnDB conn = new ConnDB();
            tabtlp = conn.SelectCategorieTLP();
            this.CategorieRepeater.DataSource = tabtlp;
            this.CategorieRepeater.DataBind();
    Donc si quelqu'un peut me dire comment transformer ca de manière a ce que mes connexions se ferme correctement
    Le using serait apparement la solution mais je sais ou men servir.
    J'avoue en demander beaucoup mais étant un nouveau du .NET en c#, les reflexes ne sont pas encore la niveau developpement,
    en vous remerciant par avance !

  20. #20
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    ok, alors on a essayer

    grosso modo, qq chose comme ca :
    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
    public class ConnDB
    {
      private DbProviderFactory dbpf;
      private string connectionString ;
     
    	public ConnDB()
    	{
              dbpf = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["ProviderStingToto"].ConnectionString);
               connectionString = ConfigurationManager.ConnectionStrings["ConnectionStringAToto"].ConnectionString;
    	}
     
        // Mes fonctions de requete
        public DataTable SelectCategorieTLP()
        {
          using (DbConnection connection = new dbpf.CreateConnection())
          {
              connection.ConnectionString = connectionString;    
              using (DbCommand command = connection.CreateCommand())
              {
                   using (DbDataAdapter adapter = dbpf.CreateDataAdapter()){
     
                       DataTable tabtlp = new DataTable();
                       adapter.SelectCommand.CommandText = "SELECT * FROM Categorie WHERE obsolete= false";
                      connection.Open();
                      adapter.Fill(tabtlp);
                      return (tabtlp);
                   }
              }
          }
        }
    c'est sale, je ne suis pas sur que ca compile, et ca meriterait un coup de refactoring pour changer le code de SelectCategorieTLP en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public DataTable SelectCategorieTLP()
    {
       return DatabaseHelper.GetDataTable("SELECT * FROM Categorie WHERE obsolete= false");
    }

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Recup infos depuis formulaire dynamique
    Par SkyBack dans le forum ASP.NET
    Réponses: 6
    Dernier message: 13/01/2010, 10h52
  2. recup variable Javascript pour Formulaire php
    Par Nicolas94 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/10/2009, 22h23
  3. Réponses: 2
    Dernier message: 28/09/2005, 17h08
  4. Pb de formulaire Post avec javascript
    Par critok dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/09/2005, 15h31
  5. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 14h46

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