2009-07-17 8 views
2

J'ai un exemple de grille de données simple avec silverlight 3, et je le remplis avec les services .NET ria en utilisant un DomainDataSource avec un DataPager de manière déclarative (rien dans le code-behind) La taille de la charge est 30, et la taille de la page est 15, et lorsque la page est chargée, la première et la deuxième page s'affichent correctement, mais quand je vais au-delà de la deuxième page, rien n'apparaît dans la grille. Cela fonctionnait dans la version bêta de silverlight 3 avec l'aperçu des services .NET Ria de Mix 2009, et j'ai un exemple très simple et j'ai vérifié que le projet Service on the web est appelé pour charger un nouveau lot , mais la grille ne montre aucune donnée. Quelqu'un peut-il expliquer pourquoi la grille affiche des données uniquement pour la charge initiale de données et non pour les lots suivants du pager?DomainDataSource DataPager avec Silverlight 3 DataGrid & .Net services RIA

Voici mon XAML:

<riaControls:DomainDataSource x:Name="ArtistSource" QueryName="GetArtist" AutoLoad="True" LoadSize="30" PageSize="15"> 
     <riaControls:DomainDataSource.DomainContext> 
      <domain:AdminContext /> 
     </riaControls:DomainDataSource.DomainContext> 
    </riaControls:DomainDataSource> 

    <data:DataGrid Grid.Row="1" x:Name="ArtistDataGrid" ItemsSource="{Binding Data, ElementName=ArtistSource}"> 
    </data:DataGrid> 

    <StackPanel Grid.Row="2"> 
     <data:DataPager Source="{Binding Data, ElementName=ArtistSource}" /> 
    </StackPanel> 

Répondre

7

Il y avait une exception levée pour les lots de données récupérées après la première:

La méthode « Skip » est pris en charge uniquement pour l'entrée triée dans LINQ to Entités La méthode 'OrderBy' doit être appelée avant la méthode 'Skip'.

Après avoir ajouté le bloc suivant pour trier les données, le téléavertisseur fonctionne correctement:

<riaControls:DomainDataSource.SortDescriptors> 
    <riaData:SortDescriptor PropertyPath="Name" Direction="Ascending"/> 
</riaControls:DomainDataSource.SortDescriptors> 

Ce fut vraiment me cause la douleur - j'allais trier les données de toute façon, mais était juste essayer la pager pour le cas le plus simple (Je migre de SL3 beta à SL3, et aussi de la Mix 2009 Preview à l'aperçu Juillet 2009 des services .NET RIA), et est resté coincé sur celui-ci. Je ne pense pas que les requêtes Linq normales requièrent orderby avant d'appeler skip, mais cela semble être le cas pour DataPager/DomainDataSource ...

Whew!

Questions connexes