Datapager는 Silverlight 3 + RIA 서비스에서 작동하지 않습니다
-
05-07-2019 - |
문제
RIA 서비스가 포함 된 Silverlight 3 앱이 있으며 DataPager가 초기로드 크기에 대한 데이터 만로드 한 다음 더 이상 다시로드하지 않는 문제가 발생합니다. 데이터의 두 페이지 (pagesize = 10, loadsize = 20입니다.) 119 페이지의 데이터를 올바르게 표시하지만 3 페이지로 이동하면 Datagrid 및 Dataforms에 아무것도 나타나지 않습니다.
이것은 내 도메인 데이터 소스입니다.
<riaControls:DomainDataSource x:Name="_dds" QueryName="GetCaseLoads" AutoLoad="True" PageSize="10" LoadSize="20">
<riaControls:DomainDataSource.DomainContext>
<domain:FooContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
다음은 데이터거의 스 니펫입니다.
<data:DataPager Source="{Binding Data, ElementName=_dds}" />
그리고 여기 도메인 서비스 쿼리가 있습니다.
[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
// Return all case loads
return this.Context.CaseLoadSet;
}
꽤 간단하여 무엇이 빠졌는지 잘 모르겠습니다. 모든 도움이 감사하겠습니다.
해결책
이 작업을 수행하는 데 너무 많은 시간을 소비 한 후 마침내 문제를 알아 냈습니다.이 문제에 대한 경고 메시지를 받았기 때문에 RIA 서비스 기술의 버그가 더 많다고 생각합니다.
간단한 수정은 getCaseloads ()가 반환하는 컬렉션을 주문하는 것입니다. 나는 이것을 좋아했고 그것은 효과가 있었다.
[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
// Return all case loads
return this.Context.CaseLoadSet.OrderBy(caseLoad=>caseLoad.fkUserId);
}
이 작은 문제를 해결하는 데 얼마나 많은 시간이 걸렸는지 놀랍습니다.
다른 팁
같은 문제가 있었는데 RIA 서비스 개요 문서에 나와있는 예에서 LINQ에서 EF 대신 LINQ에서 SQL을 사용하고 있다는 것을 알 수 있습니다. 둘 사이의 차이가 있어야합니다.
해결 방법을 게시 해 주셔서 감사합니다. 많은 시간의 멍청이를 저장했습니다 :)
제휴하지 않습니다 StackOverflow