2010-12-01 9 views
0

私はユーザーのプレイリストを表示するリピータコントロールを持っています。このコントロールは、1000曲以上の歌を歌っていることがあります。これは素晴らしい機能です。以前はjQueryを使用してクライアント側のソートを行っていましたが、それには限界があります。だから私は偉大な作品サーバー側の並べ替えを実装し、私が見ている唯一の問題は、プレイリストがこれは長い間、ポストバックとソートが実際に開始される前に2または2かかることです。リピータコントロールasp.net

私は火かき棒で行動を監視し、いくつかの調査を行い、データバインドされた値が保存されていないことを理解しています。私の質問は、Firebugで見ると、リピータコントロールがポストバックを開始する前に、コレクション内のすべてのアイテムを削除するように見えますか?他の人がこれを経験したことは本当ですか?

+0

あなたはページングが適切であることをお勧めします。 –

答えて

1

リピータコントロールは、ポストバックの間に完全に存在しなくなります。ページリクエストを行うと、リピータコントロールが存在するように呼び出されます。ポピュレートされ、ブラウザにレンダリングされます。いったん完了すると、ASP.NETはページ上のすべてのオブジェクトを削除します(またはガベージコレクタは必要なときにそれらを取得しますが、いずれにしてもそれ以上取得できません)。

ポストバックが発生した場合、リピータ全体をもう一度再作成する必要があります。ビューステートなど、可能な限りシームレスにするためのメカニズム(前のリクエストでコントロールを再作成したのと同じようにコントロールを再作成する)がありますが、時には期待通りに機能しない場合もあります。

+0

これは、GCがアイテムを削除しているのを見ています。私は遅れているだけですが、1000以上の行/アイテムがあるときだけです。ありがとう – ChampChris

+0

遅延は、毎回リピータの内容を再構築する必要があるために発生している可能性があります。毎回外部ソースからデータを取得している場合は、状況に適したものがあるかどうかを確認するために、キャッシュのさまざまな方法を調べることをお勧めします。 –

関連する問題