DomainDataSource DataPager с Silverlight 3 DataGrid и .Net RIA Services

У меня есть простой пример datagrid с silverlight 3, и я заполняю его службами .NET ria, используя DomainDataSource вместе с DataPager декларативно (ничего в коде программной части), и я испытываю эту проблему:

LoadSize равен 30, а размер страницы равен 15, и когда страница загружается, 1-я и 2-я страницы отображаются правильно, но когда я выхожу за пределы 2-й страницы, в сетке ничего не отображается.

Раньше это работало в бета-версии silverlight 3 с превью Mix 2009 для служб .NET Ria, и у меня есть действительно простой пример, и я убедился, что служба в веб-проекте вызывается для загрузки нового пакета, но сетка не показывает никаких данных.

Может ли кто-нибудь пролить свет на то, почему сетка отображает данные только для начальной загрузки данных, а не для последующих пакетов с пейджера?

Вот мой 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>

person Dennis Ward    schedule 17.07.2009    source источник


Ответы (1)


Возникло исключение для пакетов данных, полученных после первого:

Метод «Пропустить» поддерживается только для отсортированного ввода в LINQ to Entities. Метод OrderBy должен вызываться перед методом Skip.

После добавления следующего блока для сортировки данных пейджер работает правильно:

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

Это меня действительно огорчало - я все равно собирался отсортировать данные, но просто пробовал пейджер для простейшего случая (я перехожу с SL3 beta на SL3, а также от Mix 2009 Preview до июльского выпуска .NET RIA Services за июль 2009 г.), и застрял на этом. Я не думаю, что для обычных запросов Linq требуется orderby перед вызовом skip, но, похоже, это относится к DataPager / DomainDataSource ...

Ух!

person Dennis Ward    schedule 18.07.2009