DomainDataSource.QueryParameters DataGrid et DataPager
bonjour,
je suis entrain de m'arracher les cheveux, si quelqu'un pouvait me venir en aide afin d'éviter une calvitie précoce !
voila le problème
j'ai une procédure stocké :
Code:
1 2 3 4 5 6 7 8 9
|
CREATE PROCEDURE [dbo].[psProjectUser]
@userId uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;
SELECT p.idProject, p.name, p.createur, p.dteCreation from TProjects p where exists (select * from TProjectsUser u where u.userId=@userId and u.idProject=p.idProject)
END |
un petit service :
Code:
1 2 3 4 5
|
public IQueryable<TProjects> GetTProjectsForUser(Guid userId)
{
return this.ObjectContext.call_psProjectOffUser(userId).OrderBy(e=>e.name).AsQueryable();
} |
et mon code coté client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<riaControls:DomainDataSource AutoLoad="True" Height="0" LoadedData="tProjectsDomainDataSource_LoadedData" x:Name="tProjectsDomainDataSource" QueryName="GetTProjectsForUserQuery" Width="0">
<riaControls:DomainDataSource.SortDescriptors>
<riaControls:SortDescriptor PropertyPath="name" />
</riaControls:DomainDataSource.SortDescriptors>
<riaControls:DomainDataSource.DomainContext>
<my1:DSbubleConcept />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaControls:Parameter ParameterName="userId" x:Name="pUserid" Value="{Binding Path=UserId, Source={StaticResource loggedUser}}" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
<sdk:DataGrid AutoGenerateColumns="False" Grid.Row="1" Height="200" Width="Auto" HorizontalAlignment="Left" ItemsSource="{Binding Data, ElementName=tProjectsDomainDataSource}" Margin="0,5,0,5" Name="tProjectsDataGrid" Foreground="White" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" IsReadOnly="True" GridLinesVisibility="Horizontal" ColumnHeaderStyle="{StaticResource bubleConceptDataGridColumnHeaderStyle}" Style="{StaticResource bubleConceptDataGridStyle}" RowStyle="{StaticResource bubleConceptDataGridRowStyle}" CellStyle="{StaticResource bubleConceptDataGridCellStyle}" Padding="0">
...
</sdk:DataGrid>
<sdk:DataPager Grid.Row="2" Height="Auto" HorizontalAlignment="Stretch" Source="{Binding Data, ElementName=tProjectsDomainDataSource}" Margin="0,5,0,5" Name="dataPager1" PageSize="10" VerticalAlignment="Top" DisplayMode="PreviousNextNumeric" /> |
si j'enlève le datapager tout fonctionne correctement si je le laisse j'ai l'erreur suivante :
Citation:
System.serviceModel.DomainServices.Client.DomainOperationException: Echec de l'opération Load pour la requête "GetTProjectsForUser". Le résultat d'une requête ne peut pas être énuméré plusieurs fois.
:cry:
je n'arrive vraiment pas à comprendre le pourquoi du comment SVP une bouée !
une petite remarque : si je modifie l'AutoLoad="True" en "False" et que je place un tProjectsDomainDataSource.Load() dans le constructeur
cela fonctionne à ceci près que ma datagrid est positionnée sur une page vide et qu'il faut que je clique sur l'index du datapager pour afficher les donnés ????