2

我有一个带有 silverlight 3 的简单数据网格示例,并以声明方式使用 DomainDataSource 和 DataPager 使用 .NET ria 服务填充它(代码隐藏中没有任何内容),并且遇到了这个问题:

LoadSize 为 30,Page 大小为 15,当页面加载时,第一页和第二页显示正确,但是当我超出第二页时,网格中没有任何显示。

这曾经在 Silverlight 3 beta 中与 .NET Ria 服务的 Mix 2009 预览版一起工作,我有一个非常简单的示例,并验证了 Web 项目上的服务被调用以加载新批次,但是网格不显示任何数据。

任何人都可以解释为什么网格只显示数据的初始加载而不是寻呼机的后续批次吗?

这是我的xml:

    <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>
4

1 回答 1

7

第一次之后检索的批次数据抛出异常:

仅 LINQ to Entities 中的排序输入支持“跳过”方法。必须在方法“Skip”之前调用方法“OrderBy”。

添加以下块对数据进行排序后,寻呼机正常工作:

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

这真的让我很伤心 - 无论如何我都要对数据进行排序,但只是在尝试最简单的情况下的寻呼机(我正在从SL3 beta迁移到 SL3,以及从Mix 2009 Preview迁移到 2009 年 7 月.NET RIA 服务的预览版),并被困在这一点上。我认为普通的 Linq 查询在调用 skip 之前不需要 orderby,但这似乎是 DataPager/DomainDataSource 的情况......

哇!

于 2009-07-18T14:18:41.657 回答