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




dataservice (3)

Innanzitutto, qual è la definizione della tua scheda? Prova questo:

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

In secondo luogo, aggiungi l' attributo custom = "true" alla proprietà di paging .

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

In terzo luogo, è possibile modificare l' ambito dell'applicazione

Quarto, nella definizione della destinazione, aggiungi adapter = "java-dao" invece di avere un riferimento ad esso.

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

In quinto luogo, assicurati di eseguire l'Override dei metodi necessari (useFillPage, Collection fill, ecc.)

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

Vedi questo thread per alcune utili risposte a un problema simile: http://www.mail-archive.com/[email protected]/msg111746.html

Sto cercando di configurare un server per il servizio di paging di origine dati. Ho tutto configurato in modo tale da far richiamare l'assembler e restituire valori, ma non ricevo chiamate "cercapersone".

In particolare:

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

viene sempre chiamato con begin == -1 e rows == -1 , invece di ottenere valori reali per sfogliare. Inoltre:

public boolean useFillPage(List fillParameters)

non viene mai chiamato (la mia implementazione restituisce sempre true per tutti i parametri). Sembra che non venga mai chiamato perché JavaAdapter non riceve l'intestazione pageSize dal client Flex.

Questa è la mia configurazione di destinazione:

<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>

E il mio codice Flex per chiamare il servizio dati:

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

Mi sto perdendo qualcosa qui? Qualche idea su dove iniziare a guardare?


La tua configurazione di destinazione sembra completa.

Verifica che l'assemblatore si estenda come AbstractAssembler:

public class InvoiceReviewListAssembler extends AbstractAssembler 

e che si sostituisca quanto segue al minimo:

@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
}

Mi chiedo solo: questo problema si verifica sia su un vero dispositivo mobile che su un emulatore mobile? In caso contrario, potrebbe essere la connessione mobile - HTH





java flex dataservice lcds