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