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 :

Lignes de sous-titres dans une grid


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Lignes de sous-titres dans une grid
    Bonjour à tous


    Je cherche à réaliser un tableau alimenté par sqlserver prenant en compte les sous titres de catégories.

    Je m'explique :

    Dans ma base de données, je gère des éléments à plusieurs niveaux.

    Exemple pour des composants dans une recette, on aurait :

    id_composant
    niveau1
    niveau2
    lib_composant


    donnant par la suite en valeur :

    1,1,0,"Fondant Chocolat"
    2,1,1,"Beurre"
    3,1,2,"Farine"
    4,1,3,"Chocolat"
    5,2,0,"Tarte aux pommes"
    6,2,1,"Beurre"
    7,2,2,"Creme patissiere"
    8,2,3,"Pommes"

    Certes, cela fait etrange dans mon exemple d'avoir les ingrédients dans la meme table que le gateau fini, mais dans mon cas réel, cela me permet de manipuler plus simplement les résultats, surtout que d'autres niveaux pourrait être ajoutés

    De plus, que ce soit fait de cette facon ou avec une jointure, ma demande concenrnant la grid reste inchangée

    Je voudrais dans avoir ma grid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Libelle                    Quantite
    Fondant Chocolat
           Beurre                200
           Farine                 50
           Chocolat              150
    Tarte aux pommes
           Beurre                150
           Creme Patissiere       50
           Pommes                200


    C'est a dire, que j'aurais une différence dans l'ecriture (un décalage, pas de valeur attendu dans quantité, et un css différent pour mettre en valeur la ligne principale). Je différencie bien évidemment la facon de les écrire en fonction du niveau 2 (si c'est 0 ou pas).


    Y a t il un moyenne de le faire via un gridview, ou suis-je obligé de le faire a l'ancienne, avec une génération des <tr> et <td> en dynamique au fur et a mesure que je parcours ma bdd?


    Merci d'avance!


    PS : ne pas suivre les recettes que je donne, ca donnera certainement un truc infame

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    J'ai l'impression que ta demande corresponde à ce message : http://www.developpez.net/forums/d11...role-utiliser/

    Peut-être peux-tu t'inspirer des conseils (repeater et gridview) ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Merci jbrasselet (encore toi! ).


    Je connais pas du tout les repeater, donc je vais me renseigner sur leur fonctionnement afin de faire marcher ma grid.


    Merci

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Je rouvre ce sujet afin de poser une question sur le repeater.

    Je cherche a afficher une ddl dans mes gridview, et il est censé être rempli par la méthode ItemDataBound du repeater... mais ca ne marche pas des masses!

    voici mon code aspx :

    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
     
        <asp:Repeater ID="RepeatFond" DataSourceID="sqlRepeater" runat="server" OnItemDataBound="RepeatFond_ItemDataBound">
            <ItemTemplate>
                <b>Fondamental : <%# Eval("libelle_fondamentaux")%></b><br />
                <asp:GridView ID="GridViewFond" runat="server" AutoGenerateColumns="false" >
                    <Columns>
                        <asp:BoundField DataField="fondamentaux" HeaderText="Action" />
                        <asp:TemplateField HeaderText="Avancement">
                            <ItemTemplate>
                                <asp:DropDownList ID="ddl_avancement" runat="server" DataTextField="validation" DataValueField="idvalidation" SelectedValue='<%# Eval("idvalidation") %>'>
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <br />
            </ItemTemplate>
        </asp:Repeater>
        <asp:sqldatasource id="sqlRepeater" runat="server"></asp:sqldatasource>

    Et maintenant le code c# (la méthode repeaterBind() étant appellée lors du page load) :

    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
     
     
        private void repeaterBind()
        {
            sqlRepeater.ConnectionString = ConfigurationManager.ConnectionStrings["sqlServer"].ConnectionString;
            string req = "Select [libelle_fondamentaux] as libelle_fondamentaux, [id_categorie_fondamentaux] as id_categorie_fondamentaux from [BSC_Categorie_Fondamentaux] Order By [id_categorie_fondamentaux]";
            sqlRepeater.SelectCommand = req;
            RepeatFond.DataSource = null;
            RepeatFond.DataBind();
        }
     
        public void RepeatFond_ItemDataBound(object Sender, RepeaterItemEventArgs e)
        {
            // Si il s'agit d'un élément Item ou AlternatingItem.
            if ((e.Item.ItemType == ListItemType.Item) | (e.Item.ItemType == ListItemType.AlternatingItem))
            {
                //remplissage cbx
     
     
     
                // Récupération id de la categ.
                int idFond = int.Parse(((DataRowView)e.Item.DataItem)["id_categorie_fondamentaux"].ToString());
                // Stock le GridView1 dans une variable
                GridView myGridView = (GridView)e.Item.FindControl("GridViewFond");
                // Construction du GridView
                myGridView.DataSource = dsListeFondamentaux(idFond);
     
                myGridView.DataBind();
            }
        }
     
        private DataSet dsListeFondamentaux(int idFond)
        {
    	    // Création d'une instance de connexion
            SqlConnection oConnexion = new SqlConnection();
            oConnexion.ConnectionString = ConfigurationManager.ConnectionStrings["sqlServer"].ConnectionString;
     
            // Création d'un DataSet
    	    DataSet myDataset = new DataSet();
            SqlDataAdapter dtr = new SqlDataAdapter("Select [BSC_Fondamentaux].[libelle_fondamentaux] as fondamentaux, [BSC_Type_Validation].[libelle_validation] as validation, [BSC_Type_Validation].[id_type_validation] as idvalidation from [BSC_Fondamentaux], [BSC_Etat_Fondamentaux], [BSC_Type_Validation], [BSC_Categorie_Fondamentaux] Where [BSC_Etat_Fondamentaux].[id_type_validation]=[BSC_Type_Validation].[id_type_validation] And [BSC_Etat_Fondamentaux].[id_fondamentaux]=[BSC_Fondamentaux].[id_fondamentaux] And [BSC_Fondamentaux].[id_categorie_fondamentaux]=[BSC_Categorie_Fondamentaux].[id_categorie_fondamentaux] And [BSC_Categorie_Fondamentaux].[id_categorie_fondamentaux] = '" + idFond + "' Order By [BSC_Fondamentaux].[id_fondamentaux]", oConnexion);
     
            dtr.Fill(myDataset);
    	    // Retourne le DataSet
    	    return myDataset;
        }


    Mon probleme : ma ddl est vierge. l'attribut SelectedValue ne m'est pas proposé par l'intellisense, et si je le force, ca ne marche pas plus (de toutes facons, puisque DataTextField et DataValueField sont vides, le SelectedValue ne pourrait pas marcher)


    J'ai vu sur divers sites qu'il faudrait préciser le datasource dans le ddl, le problème c'est que le seul existant est un dataset renvoyé par une méthode, en fonction de l'id_fondamentaux du repeater.




    De plus, un autre problème intervient : la validation.

    J'ai créé un bouton (j'ai essayé a l'intérieur et aussi a l'exterieur du repeater) qui est censé mettre a jour ma bdd en fonction de ce qu'on aura mis dans les ddl. Mais une fois encore, impossible de faire quoi que ce soit avec les ddl. Les findcontrol que j'essaye de faire ne marche pas,et donc il m'est impossible de valider la moindre information.

    Si quelqu'un a la solution miracle pour résoudre mes problème...

Discussions similaires

  1. Ajouter des sous titres dans une combo box
    Par Djaiffe dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/05/2018, 16h55
  2. Gstreamer - ajouter des sous titres dans une video
    Par CaNiBaLe dans le forum Linux
    Réponses: 0
    Dernier message: 28/10/2014, 18h04
  3. [AC-2007] Sous-titres dans une liste déroulante
    Par al_bert dans le forum IHM
    Réponses: 7
    Dernier message: 19/05/2009, 15h21
  4. free soft : pour masqué un sous titre dans une vidéo?
    Par devlopassion dans le forum Vidéo
    Réponses: 0
    Dernier message: 03/02/2009, 12h00
  5. Réponses: 9
    Dernier message: 04/12/2005, 18h57

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