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 :

[VB.net][infragistics]Utiliser UltraWebGrid en mode hierarchique


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 83
    Points
    83
    Par défaut [VB.net][infragistics]Utiliser UltraWebGrid en mode hierarchique
    Bonjour,

    J'utilise Visual Web Developer et j'ai téléchargé les composants d'Infragistics (en version d'évaluation) pour me simplifier la réalisation d'une maquette de site web.
    Je souhaiterai utiliser leur composant UltraWebGrid et l'afficher en mode hiérarchique : Avec une table parent et une table enfant.
    Voici le lien de l'exemple du site Infragistics : (aller dans /Grid/Hierarchical Grid)
    L'exemple

    Pour ce faire j'ai suivi étape par étape leur solution proposée
    Mais sans résultat.

    Je cherche donc une solution pour faire fonctionner ce composant en mode "hierarchical".
    Sinon si quelqu'un a une solution proposant ce type d'affichage de grille et aussi souple que l'UltraWebGrid (qui propose la modification des champs) je suis aussi intéressé.

    Merci d'avance.

  2. #2
    Membre du Club Avatar de fumesec
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    J'ai utilisé leur produit avec VS.NEt 2003. Mais je pense que cela doit être assez similaire.
    Pourriez vous être plus explicite lorsque vous dites :
    Pour ce faire j'ai suivi étape par étape leur solution proposée
    Mais sans résultat.
    Vous obtenez un message d'erreur, cela ne fonctionne pas?

    Tenez moi informée pour que j'essaie de vous aider.

    @++

    Fumesec

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Tout d'abord, merci de l'intérêt porté à ma demande.

    Voici la dernière procédure que j'ai suivie pour tenter de faire fonctionner l'ultraWebGrid en mode "hierarchical"

    Situation de base :
    J'ai une base de données (sous SQL Server Express 2005) qui contient une table 'Demande' et une table 'Sous_Demande'. La regle de gestion entre ces deux table est : Une demande contient une ou plusieurs sous demande.
    Je souhaite donc obtenir un tableau au format :
    [-] - Demande1
    L SousDemande1
    L SousDemande2
    L SousDemande3
    [-] - Demande2
    L SousDemande4
    [+] - Demande3
    [+] - DemandeN

    Procédure suivie :
    - Dans l'explorateur de solution Visual Studio 2005 j'ajoute un DataSet dans mon dossier app_code que je nomme DataSet_Demandes.
    - Dans ce DataSet j'utilise l'assistant pour générer deux tableAdapter :
    - Demande (qui utilise la requête SELECT Num_Demande, Duree FROM Demande)
    - Sous_Demande (qui utilise la requête SELECT Num_Sous_Demande, Num_Demande, Comment_Pour_Fournisseur FROM Sous_Demande)
    NB : Pour les deux tableAdapter je ne demande que les méthodes Fill et GetData proposées par défaut. De plus je supprime la relation généré par défaut entre les deux tableAdapter.

    - Je crée une nouvelle page .aspx ou je place un composant UltraWebGrid en ne modifiant aucun des paramètres par défaut.

    - Sur cette même page je passe en code Behind (VB) et je fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.UltraWebGrid1.DisplayLayout.ViewType = Infragistics.WebUI.UltraWebGrid.ViewType.Hierarchical
            Dim ds As DataSet_Demandes = New DataSet_Demandes
            Dim tableParent As System.Data.DataColumn = ds.Tables("Demande").Columns("Num_Demande")
            Dim tableEnfant As System.Data.DataColumn = ds.Tables("Sous_Demande").Columns("Num_Demande")
            Dim dr As System.Data.DataRelation = New System.Data.DataRelation("RelationDemandeSousDemande", tableParent, tableEnfant)
            ds.EnforceConstraints = False
            ds.Relations.Add(dr)
            Me.UltraWebGrid1.DataSource = ds
        End Sub
    Résultat au chargement de la page dans le navigateur :
    L'UltraWebGrid s'affiche bien sans erreur sur la page mais affiche 'No Data To Display' dans l'UltraWebGrid.

  4. #4
    Membre du Club Avatar de fumesec
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Après avoir regardé votre code, je verrai une différence avec le mien, dans un premier temps. Au lieu de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Me.UltraWebGrid1.DataSource = ds
    J'essaierai plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Me.UltraWebGrid1.DataSource = ds.tables("Demandes").DefaultView
    Tenez moi informée

    Fumersec

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 83
    Points
    83
    Par défaut
    Après modification de
    Me.UltraWebGrid1.DataSource = ds
    par
    Me.UltraWebGrid1.DataSource = ds.tables("Demandes").DefaultView

    Aucun changement dans le navigateur.

  6. #6
    Membre du Club Avatar de fumesec
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Petite question qui va vous paraître absurde certainement, mais êtes vous sûr que votre dataset contient bien des données?

  7. #7
    Membre du Club Avatar de fumesec
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Voici le code que j'utilise pour emplir mon UltraWebGrid :

    Mon dataset "MyDs" contient deux datatables la première s'appelle "categ" et la seconde "detail".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
      Myds = Facture.GetCorpsFacture(valeur, _FactID)
      'Definitions des clés primaires pour les deux datatables pour ajout
      Myds.Tables("Categ").PrimaryKey = New DataColumn() {Myds.Tables("Categ").Columns("CategoryID")}
      Myds.Tables("Detail").PrimaryKey = New DataColumn() {Myds.Tables("Detail").Columns("FD_ID")}
     
      'Définition du regroupement
      Myds.Relations.Add("Categ", Myds.Tables("Categ").Columns("CategoryID"), Myds.Tables("Detail").Columns("FD_Categ_ID"))
     
      'Liaison des données avec la grille
      Me.CorpsFactGrid.DataSource = Myds.Tables("Categ").DefaultView
    J'espère que cela vous aidera...

    @++

    Fumesec

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Votre question :
    Petite question qui va vous paraître absurde certainement, mais êtes vous sûr que votre dataset contient bien des données?
    N'est pas absurde du tout. Je débute en .NET et visual web developper propose un outil "assistant" permettant de construire les dataSet (dans le dossier App_code). Ni connaissant pas grand chose, j'utilise cet assistant qui me donne un aperçu graphique de ce qui me semble être un dataset.
    Maintenant il existe sans doute une solution plus fiable de créer un dataset par le code.

    Pour ce qui est de mon UltraWebGrid en mode hierarchie, je me suis renseigné auprès d'Infragistics. Ces derniers m'ont fourni le code suivant pour réaliser la hiérarchie :
    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
     
    Protected Sub UltraWebGrid1_InitializeDataSource(ByVal sender As Object, ByVal e As Infragistics.WebUI.UltraWebGrid.UltraGridEventArgs) Handles UltraWebGrid1.InitializeDataSource
     
            'Creating the DataTable Object
            Dim dt As New DataTable("Parent")
     
            'Creating the DataTable Columns
            dt.Columns.Add("Designation", GetType(String))
            dt.Columns.Add("Name", GetType(String))
     
            'Creating the DataTable Rows
            dt.Rows.Add(New Object() {"DSE", "John"})
            dt.Rows.Add(New Object() {"SSE", "Mike"})
            dt.Rows.Add(New Object() {"ASE", "Eric"})
     
            'Creating the DataTable Object
            Dim dt1 As New DataTable("Child")
     
            'Creating the DataTable Columns
            dt1.Columns.Add("Designation", GetType(String))
            dt1.Columns.Add("Address", GetType(String))
     
            'Creating the DataTable Rows
            dt1.Rows.Add(New Object() {"DSE", "XYZ"})
            dt1.Rows.Add(New Object() {"SSE", "ABC"})
            dt1.Rows.Add(New Object() {"ASE", "QWE"})
            dt1.Rows.Add(New Object() {"DSE", "PradeepK"})
            dt1.Rows.Add(New Object() {"SSE", "ChandradeepM"})
            dt1.Rows.Add(New Object() {"ASE", "SaurabhB"})
     
            'Creating the DataSet Object
            Dim ds As New DataSet
     
            'adding the table object to the the DataSet.
            ds.Tables.Add(dt)
            ds.Tables.Add(dt1)
     
            'Creating Relationship using the DataSet using the first columns of the 'First table parent and child 
            ds.Relations.Add(ds.Tables("Parent").Columns(0), ds.Tables("Child").Columns(0))
     
            'Creating ViewType to Hierarchical to have Hierarchical  relationship 
            UltraWebGrid1.DisplayLayout.ViewType = Infragistics.WebUI.UltraWebGrid.ViewType.Hierarchical
     
            'Assigning the database/Dataset to UltraWebGrid's DataSource 
            UltraWebGrid1.DataSource = ds
            UltraWebGrid1.DataBind()
        End Sub
    Ce code fonctionne très bien et je le trouve très simple à comprendre. J'ai même réussi à réaliser une hiérarchie à trois niveaux.
    Le problème maintenant est que je ne sais pas comment faire pour utiliser un dataSet relié à ma base de données sous SQL Server...
    NB : dès que je demande à avoir un aperçu des données dans mon dataSet (via la page .xsd dans app_code) ça fonctionne, les données voulues apparaîssent bien.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    je remarque que dans le code que vous décrivez plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.UltraWebGrid1.DisplayLayout.ViewType = Infragistics.WebUI.UltraWebGrid.ViewType.Hierarchical
            Dim ds As DataSet_Demandes = New DataSet_Demandes
            Dim tableParent As System.Data.DataColumn = ds.Tables("Demande").Columns("Num_Demande")
            Dim tableEnfant As System.Data.DataColumn = ds.Tables("Sous_Demande").Columns("Num_Demande")
            Dim dr As System.Data.DataRelation = New System.Data.DataRelation("RelationDemandeSousDemande", tableParent, tableEnfant)
            ds.EnforceConstraints = False
            ds.Relations.Add(dr)
            Me.UltraWebGrid1.DataSource = ds
        End Sub
    il manque le "databind" . Est-ce simplement un oubli dans le message ou dans votre code aspx?

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Le databind est un oubli dans le message, je l'ai bien testé dans le code behind de me page aspx.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UltraWebGrid1.DataBind()

Discussions similaires

  1. Comment utiliser XML de façon hierarchique comme en .Net?
    Par MicaelFelix dans le forum WinDev
    Réponses: 2
    Dernier message: 04/01/2011, 17h08
  2. [.NET][C++]Utilisation de TreeNode
    Par ben_popcorn dans le forum MFC
    Réponses: 1
    Dernier message: 13/06/2005, 10h09
  3. [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 17/05/2005, 14h24
  4. [VB.NET] Comment utiliser VScrollBar verticale
    Par stephane93fr dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/04/2005, 14h00
  5. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 10h44

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