我正在測試RIA服務。我將RIA Services庫放在一起,並構建了一個自定義的DomainService(即不是實體框架域服務)。我正在從Silverlight應用程序訪問該庫,並且所有工作都按預期工作。我可以調用RIA服務函數並獲得結果。RIA服務 - 分頁
我的問題是與分頁。我無法在任何地方找到在使用自定義域名服務的RIA服務上使用分頁的描述。我的RIA服務正在訪問專門的DAL以訪問數據(並且與實體框架不兼容)。我發現的是將分頁參數(即頁面,頁面大小)傳遞給RIA服務功能的指示。所以我已經完成了 - 創建了一個RIA服務函數,它爲Page [index]和Page size增加了額外的參數。我正在使用DataGrid和DataPager在Silverlight中進行測試。具有分頁參數的RIA服務被調用(並返回數據)並填充DataGrid。我遇到的問題是當我去另一個頁面。發生的是RIA服務被調用兩次。第一次使用正確的參數(即正確的頁面索引),然後再次使用頁面索引爲零)。即總是重置爲第一頁。我不明白爲什麼會發生這種情況;我相信我把所有的東西放在一起(希望)。以下是XAML腳本:
<riaControls:DomainDataSource
Name="ddsScheduleTemplates"
LoadSize="20"
QueryName="GetPagedScheduleTemplates"
AutoLoad="True"
>
<riaControls:DomainDataSource.DomainContext>
<ds:ScheduleEngineDomainContext/>
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaControls:Parameter ParameterName="UserLogonName" Value="admin" />
<riaControls:Parameter ParameterName="UserPassword" Value="admin" />
<riaControls:Parameter ParameterName="Page" Value="{Binding ElementName=dpScheduleTemplates, Path=PageIndex}" />
<riaControls:Parameter ParameterName="PageSize" Value="{Binding ElementName=dpScheduleTemplates, Path=PageSize}" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
<StackPanel>
<dg:DataGrid
Name="ScheduleTemplatesGrid"
MinHeight="100"
MaxHeight="300"
IsReadOnly="True"
ItemsSource="{Binding ElementName=ddsScheduleTemplates, Path=Data}"
/>
<dg:DataPager
x:Name="dpScheduleTemplates"
PageSize="10"
Source="{Binding ElementName=ddsScheduleTemplates, Path=Data}"
PageIndexChanged="dpScheduleTemplates_PageIndexChanged"
/>
</StackPanel>
我已經修改了上面的腳本調用一般加載函數(GetPagedScheduleTemplates - 返回所有記錄),並調整QueryParameters列表功能。 DataGrid正確加載 - 並且分頁工作正常。
這使我困惑 - 它看起來像DataPager需要加載所有數據才能正常工作 - 但我做了一個測試,在加載頁面請求操作中的所有數據; (即分頁屬性設置和調用RIA服務功能的分頁版本),但DataGrid仍會重置。
注:我讀過DataPager需要訂購返回列表 - 我這樣做 - 但不影響操作 - 分頁始終重置爲第1頁 - 以下是RIA服務功能返回列表 newList.ToArray()。AsQueryable()。OrderBy(x => x.ScheduleTemplateID)
所以;我的問題是 - 有沒有人看到過這種行爲 - 或者我犯了一個可怕的錯誤 - 如果是的話,我做錯了什麼?
彼得
這將是偉大的,如果你littlebit格式化你的答案。 :) – 2012-12-04 08:56:04