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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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

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