Windowsフォームに表示する必要がある大きなデータベーステーブルがあります。データは、ユーザーにツリービューのような構造で表示する必要がある「カテゴリリスト」のようなものです。サブカテゴリが多いカテゴリがあります。ツリービューコントロールには読み込み遅延がありますが、問題は10個のルートノードと4個の列文字列値がある可能性があることです。ツリービューに100000ノードを追加しようとしましたが、完了するまでに5分かかりました。そのような操作のための他のオプションはありますか?私に何かアイデアを教えてもらえますかには、ツリービューであるがありません。大量のデータを高速に表示する方法
答えて
私は、ツリービューの仮想/サーバモードを実装することに決めました。
お返事ありがとうございます。
これはノードがたくさんありますが、ツリービューにノードのリストを追加したときにBeginUpdate()とEndUpdate()を呼び出してみましたか?それはおそらく少しあなたのパフォーマンスをもたらすでしょう!このようなアプリケーションのために
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.beginupdate.aspx
、私は彼らがテキストボックスに入力されているとして、カテゴリ名を返すように「あなたが入力する検索」などの機能を実装する傾向があります。たとえば、各キーストロークで、私はDBに戻って、テキストボックスにあるもので始まるトップ10程度の値を返します。結果が10件を超えている場合は、結果がより多いことを示しているか、検索結果を絞り込むように指示します。 IMOの直接検索は常にソートやページングよりも優先されます。私はページングが嫌いです。ほとんどの場合、検索機能が十分に機能していないことを認めています。
おそらく、何らかの種類のページングメカニズムを実装します。 TreeViewの100,000個のアイテムは、ユーザーの観点から読むのが非常に難しいでしょう。一度に1,000またはそれ以下のルートノードを提供するだけで、確実にロード時間が短縮されます。
キャッシュ機能を使用できます。 20000レコードには一般に0.2秒かかります。それを使用するには言語サポートを確認してください。
について、
TreeViewにはBeforeExpandというイベントがあります。これを使用して、どのノードコンテンツをロードするかを決定することができます。つまり、最初にTreeViewのトップレベルノードのみをロードします。
ユーザーがノードを展開しようとしている場合、必要なデータをフェッチして、そのノードのサブノードを埋めることができます。 TreeNodeのTagプロパティを使用して、データがどのノードに属するIDを格納します。
ノードがはるかに高速であるため、BeginUpdate()とEndUpdate()を使用するか、Add()の代わりにAddRange()を使用してノードを追加してください。
- 1. 大量のデータをWeb API経由で高速にエクスポートする方法
- 2. グリッドビューに大量のデータを表示する方法
- 3. 大量のデータを高速に表示するための正しいアプローチですか?
- 4. 大量のデータをC++で大量に保存する方法
- 5. LINQ大量のデータをSQLに高速に挿入する方法はありますか?
- 6. Google Datalabで大量のデータを読む最速の方法は?
- 7. 大量のファイルから読み込みを高速化する方法(Java)
- 8. VBA(Excel)でデータを高速化する高速方法
- 9. "GetAllWithPrefix"を高速で実行できる膨大な量のレコードのデータ構造
- 10. はMnesiaから大量のデータを取得する - 最速の方法
- 11. WooCommerceで大量の製品をアップデートする最速の方法
- 12. 大量の階層データを表示するためのUI
- 13. 大容量/低速接続での大容量ファイルのアップロード方法
- 14. 大量のテキストを表示するコントロール
- 15. 大量のゼロパディングを避けるためにFFTWプルーニングを高速化する
- 16. 大量のデータを処理するレーキタスクを高速化するにはどうすればよいですか?
- 17. 大容量のデータセットを扱うときにQSortFilterProxyModelフィルタリングを高速化する
- 18. プログラマチックに作成された大きなボタンの表示を高速化する
- 19. 大量のデータをアプリケーション内のsqliteにインポートする方法(リアルタイム)
- 20. 大量のデータをデータグリッドにロードする最良の方法
- 21. 画像表示を高速化する
- 22. リストの大量のリストの高速比較
- 23. 大きなテキストファイルのログ解析を高速化する方法
- 24. javascriptを使用して大量のデータにアクセスする方法
- 25. Flaskで大量のデータをhtmlに投稿する方法
- 26. 大量のデータをNeo4jに挿入する方法
- 27. 大量のデータをjavascriptに保存する方法
- 28. 高速レポートで空のテキストオブジェクトから枠線を非表示にする方法
- 29. WCF RIA大きなデータを高速に取得する
- 30. 大量のデータをNode.jsからクライアントに送信する速度を上げる方法はありますか?