2009-11-06 24 views
0

J'ai un contrôle Grid View qui affiche des données basées sur ce qui est retourné par LinqDataSource. LinqDataSource sélectionne les données en fonction de la date choisie dans un contrôle de date (utilisé dans la clause where), mais j'ai également besoin que la clause where soit basée sur l'ID utilisateur actuel qui est un GUID.LinqDataSource - comment sélectionner les lignes en fonction de l'ID utilisateur actuel?

Comment obtenir la LinqDataSource pour obtenir l'ID d'utilisateur actuel et l'utiliser dans la clause where? Mon code ressemble actuellement quelque chose comme ça (dans la page .aspx)

Where=UserID == GUID?(@UserID) 

<asp:Parameter DbType="Guid" Name="UserId" /> 

J'espère que ce assez d'information - s'il vous plaît laissez-moi savoir si vous avez besoin de plus! :)

Merci :)

Répondre

0

Si quelqu'un est intéressé, je me suis arrêté en utilisant la balise intelligente et a fini par écrire la requête dans le cas _Selecting du LinqDataSource. Cela a semblé le réparer.

0

ce que je faisais quand j'eu le même problème:

<asp:LinqDataSource ... Where="UserID == Convert.ToInt32(@UserID)"> 
    <WhereParameters> 
    <asp:ControlParameter Name="UserID" ControlID="hdnUserID" 
     Type="Int32" PropertyName="Value" /> 
    </WhereParameters> 
</asp:LinqDataSource> 

<asp:HiddenField runat="server" ID="hdnUserID" Visible="false" /> 

Puis je définir l'attribut Value de hdnUserID de code-behind. C'est un hack, mais ça marche.