0

Wicket Kendo UI ライブラリで Wicket を使用しています。

ステップの 1 つに Kendo Grid を含むウィザードがあります。このステップに到達すると、テーブルは正常に表示されますが、次のステップに移動してから戻ると、問題が発生することがあります。テーブル データがテーブルに表示されず、空のテーブルとスプラッシュ スクリーンがローリングされます無期限に。

ネットワークを調べると、テーブルでステップを表示するときに 2 つの要求があることがわかりました。1 つはテーブル マークアップと js を含む xml を含み、もう 1 つはテーブル行を含む json データを含みます。両方のリクエストが正常に終了しましたが、どういうわけか、テーブルは 2 番目の行からその行のデータを取得できません。

この問題は毎回発生するわけではなく、テーブルがデータを正しく取得する場合があります。

問題を切り分けようとすると、次のことがわかりました。 Wicket ウィザードは、ステップを切り替えるときに MarkupContainer.replace(Component child) メソッドを使用するため、ウィザードなしで問題を再現できます。ページ上の表を別のものに置き換えてから、再び元に戻すだけです。

なぜテーブルがこのような奇妙な振る舞いをするのか、誰にも考えがありますか? 新しいマークアップの種類が、受信したデータまたは何かを配置する場所を見つけることができない js コードとのリンクを失ったためですか?..

4

1 に答える 1

1

わかりました、問題の場所がわかりました。次のステップをレンダリングするとき、Wicket ウィザードは前のステップのマークアップを置き換えますよね? これを行うと、関連するキャッシュ データが jquery キャッシュ ($.cache) から削除されます。剣道グリッドはそのデータを使用し、前のステップが復元されてグリッドがレンダリングされると、そのデータが見つからないことが判明しました。したがって、私の場合、解決策は、次のステップに進む前にテーブルを非表示にすることでした。そのようにして、グリッドがレンダリングされると、キャッシュ データが再入力され、すべてが正常に機能しました。

于 2016-08-12T07:16:17.907 に答える