Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
130 views
in Technique[技术] by (71.8m points)

java - Flex/LCDS Server-to-data-source Paging

I’m trying to set up a server to data-source paged service. I’ve got everything set up so that I’m getting my assembler called and am returning values, but I’m not getting “paged” calls.

Specifically:

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

is always called with begin == -1 and rows == -1, instead of getting real values to page through. In addition:

public boolean useFillPage(List fillParameters)

is never called (my implementation always returns true for all parameters). It looks like it is never called because the JavaAdapter is not receiving the pageSize header from the Flex client.

This is my destination 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>

And my Flex code for calling the data service:

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

Am I missing something in here? Any ideas where to start looking?

question from:https://stackoverflow.com/questions/513774/flex-lcds-server-to-data-source-paging

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

First, What is your adapter definition? Try this:

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

Second, add custom="true" attribute to your paging property.

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

Third, possibly change your scope to application

Fourth, in your destination definition, add adapter="java-dao" instead of having a reference to it.

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

Fifth, make sure you're Overridding the necessary methods (useFillPage, Collection fill, etc.)

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

See this thread for some helpful responses to a similar problem: http://www.mail-archive.com/flexcoders@yahoogroups.com/msg111746.html


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...