Flex / LCDS服务器到数据源的寻呼

我试图build立一个服务器到数据源分页服务。 我已经设置了一切,以便让我的汇编程序调用,并返回值,但我没有得到“分页”调用。

特别:

public Collection fill(List fillArgs, int begin, int rows) 

总是用begin == -1rows == -1来调用,而不是通过获取真正的值。 此外:

 public boolean useFillPage(List fillParameters) 

永远不会被调用(我的实现总是返回所有参数为true)。 它看起来像从来没有被调用,因为JavaAdapter没有从Flex客户端接收pageSize头。

这是我的目标configuration:

 <destination id="invoiceListDataService"> <adapter ref="java-dao" /> <properties> <scope>session</scope> <source>com.williams.finance.invoice.dao.InvoiceReviewListAssembler</source> <network> <paging enabled="true" pageSize="100" /> </network> <metadata> <identity property="invoiceNumber"/> </metadata> </properties> </destination> 

和我的Flex代码调用数据服务:

 myDataService = new DataService("invoiceListDataService"); myDataService.autoSyncEnabled=false; myDataService.fill(invoiceReviewListModel.invoiceList, params); 

我在这里错过了什么吗? 任何想法从哪里开始寻找?

首先,你的适配器定义是什么? 尝试这个:

 <adapters> <adapter-definition class="flex.data.adapters.JavaAdapter" id="java-dao"></adapter-definition> </adapters> 

其次,将custom =“true”属性添加到您的分页属性中。

 <paging enabled="true" pageSize="100" custom="true"/> 

第三,可能将您的范围改为应用程序

第四,在你的目标定义中,添加adapter =“java-dao”而不是引用它。

 <destination adapter="java-dao" id="invoiceListDataService"> 

第五,确保你重写了必要的方法(useFillPage,Collection fill等)

 @Override public boolean useFillPage(List fillParameters) { // enabling paged-fill for all fills return true; } 

看到这个线程对类似问题的一些有用的回应: http : //www.mail-archive.com/flexcoders@yahoogroups.com/msg111746.html

您的目标configuration看起来完整。

仔细检查你的汇编器是否扩展了AbstractAssembler:

 public class InvoiceReviewListAssembler extends AbstractAssembler 

并且至less覆盖以下内容:

 @Override public int count(List arg0) { return -1; // or return the collection length. } @Override public boolean useFillPage(List fillParameters) { return true; } @Override public Collection fill(List fillParameters, PropertySpecifier ps, int startIndex, int numItems) { // TODO } 
Interesting Posts