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 :

GridView - Liste avec source différente


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut GridView - Liste avec source différente
    Bonjour,

    Je suis en train de faire une application d'administration qui gère des rôles (Administrateur, Utilisateur...) pour un site de Transfert FTP (en gros).
    Chaque rôle a des droits (upload de fichier, suppression...).
    J'aimerais afficher la liste des droits de chaque rôle dans mon GridView (qui est lié à SqlDataSource1).
    Pour cela, j'ai pensé à une listBox liée à SqlDataSource2 qui fait un SELECT pour trouver les droits.

    Le problème c'est que je ne sais pas comment indiqué l'identifiant du rôle dans le SqlDataSource2.
    Voici un bout de code, ça parle plus (les points représentent des parties de codes que je n'ai pas mis car je pense qu'elles ne servent à rien pour traiter le problème, ça allège un peu le code ^^)

    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
     
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataSourceID="SqlDataSource1" DataKeyNames="idRole">
    ..................................
     <asp:BoundField DataField="idRole" HeaderText="Identifiant"
       ReadOnly=True SortExpression="idRole" />
    ..................................
     <asp:TemplateField HeaderText="Actions Disponibles" SortExpression="idRole">
         <EditItemTemplate>
            <asp:CheckBoxList ID="ListEdit" runat="server" style="height:auto;"
                DataTextField="nomDroit" DataSourceID="SqlDataSource3"/>
         </EditItemTemplate>
         <ItemTemplate>
            <asp:ListBox ID="ListNEdit" runat="server" style="height:auto;"
                DataTextField="nomDroit" DataSourceID="SqlDataSource2"/>
         </ItemTemplate>
     </asp:TemplateField>
    ..................................
    </asp:GridView>
     
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString=...
             SelectCommand="SELECT * FROM [Role]"></asp:SqlDataSource>
     
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString=...
             SelectCommand="SELECT d.nomDroit FROM [Droit] d, Autorisation a
                            WHERE d.idDroit = a.idDroit AND a.idRole = @idRole
                            GROUP BY d.idDroit, d.nomDroit)">
    </asp:SqlDataSource>
    ça me dit 'La variable scalaire "@idRole" doit être déclarée'.

    Je veux juste mettre l'identifiant du rôle en cours dans le SqlDataSource2.

    Merci d'avance à ceux qui voudront bien essayer de m'aider

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Personne n'a une idée ?

    J'arrête pas de chercher mais je trouve pas donc si vous avez une idée, n'hésitez surtout pas !!!

  3. #3
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Bonjour,

    Je pense qu'il te manque ceci dans ton SqlDataSource :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SelectParameters>
            <asp:Parameter Name="@idRole" Type="String" />
        </SelectParameters>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Bonjour, merci de m'aider Jmichou972, cependant,
    Citation Envoyé par Jmichou972 Voir le message
    Je pense qu'il te manque ceci dans ton SqlDataSource :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SelectParameters>
            <asp:Parameter Name="@idRole" Type="String" />
        </SelectParameters>
    Même après l'avoir ajouté, ça ne marche pas, ça m'affiche une liste vide.
    J'ai juste ajouter ces quelques lignes entre les balises du SqlDataSource.

    On dirait que le SqlDataSource ne connait pas la valeur du paramètre.
    Comment lui indiquer qu'il s'agit de l'identifiant du rôle en cours ?

    Merci d'avance

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Il faut utiliser la classe MemberShip dans ton fichier .cs, dans la méthode Page_Load().

    Cette classe contient une méthode .GetUser() qui devrait pouvoir t'aider à récupérer les informations du compte connecté, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.SqlDataSource1.SelectParameters["idRole"].DefaultValue = Membership.GetUser().ProviderUserKey.ToString();
    Voila. Je suis pas plus doué que toi en C# donc je sais pas si ça devrait suffire.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    non Jmichou972, tu m'as mal compris. En fait, je ne veux pas savoir qui est connecté mais plutôt l'identifiant de la ligne du GridView.

    En fait, j'aimerais afficher la liste des droits d'un rôle en face de son nom et de son id.

    Je sais pas si je suis compréhensible

Discussions similaires

  1. [SP-2010] Erreur restauration liste avec source UNC
    Par rigol'man dans le forum SharePoint
    Réponses: 6
    Dernier message: 28/05/2015, 12h02
  2. liste avec contenu différent
    Par robert_trudel dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 28/03/2008, 15h41
  3. 1 requête , 2 tables avec sources différentes
    Par caballero dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2007, 10h47
  4. Etat avec deux sources différentes
    Par Pigwi dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/06/2007, 09h43
  5. Réponses: 15
    Dernier message: 21/05/2007, 11h24

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