39

データソースのページングサービスにサーバーをセットアップしようとしています。アセンブラが呼び出されて値が返されるようにすべてを設定しましたが、「ページング」呼び出しを取得していません。

具体的には:

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

ページスルーする実際の値を取得する代わりに、常にbegin == -1andで呼び出されます。rows == -1加えて:

public boolean useFillPage(List fillParameters)

呼び出されることはありません(私の実装はすべてのパラメーターに対して常にtrueを返します)。JavaAdapterがFlexクライアントからpageSizeヘッダーを受信して​​いないため、呼び出されていないようです。

これは私の宛先構成です:

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

ここに何かが足りませんか?どこから探し始めるかについてのアイデアはありますか?

4

2 に答える 2

1

宛先の構成が完了したようです。

アセンブラが AbstractAssembler を拡張していることを再確認します。

public class InvoiceReviewListAssembler extends AbstractAssembler 

そして、少なくとも以下をオーバーライドします。

@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
}
于 2011-08-26T06:50:53.020 に答える
1

まず、アダプタの定義は何ですか? これを試して:

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

次に、custom="true"属性をページングプロパティに追加します。

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

第三に、適用範囲アプリケーションに変更する可能性があります

第 4 に、宛先の定義で、adapter="java-dao" を参照する代わりに追加します。

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

第 5 に、必要なメソッド (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

于 2011-08-13T14:20:27.720 に答える