- PR -

ASP.NET ツリービューコントロールについて

投稿者投稿内容
MONST
会議室デビュー日: 2005/09/30
投稿数: 9
投稿日時: 2006-01-16 11:19
いつもお世話になっております。
返信遅くなり申し訳ございませんでした。
ASP.NET:バージョン 1.1
TreeView コントロールは Internet Explorer WebBrowser コントロール郡です。

引用:

じゃんぬねっとさんの書き込み (2006-01-14 09:03) より:
聞き忘れていたのですが、ASP.NET はバージョン 1.1 ですか?
それとも、2.0 ですか?
TreeView コントロールは Internet Explorer WebBrowser コントロール郡ですか?




きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-01-16 19:04
MONSTさん、こんばんは。

引用:

最大6階層の1ノードに付最大8ノードを想定しています。


という事は、最大で 8 ^ 6 = 262144 ノード、ってことですよね。

いや、実際にはそんなには無いと思いますが、最下層までのノードを、最初に全て取得しているんですよね?
そうすると最大で 8 ^ 5 = 32768 回、再帰的な子ノードの読込が初期化処理で発生する可能性もあったりして、それは結構、重いんじゃないかと思います。

当該コントロールは使った事ありませんが、初期状態では最上層のノードだけを取得しておいて、展開イベントで子ノードを取得 / 折りたたみでクリアすれば、動きが軽くなるのではないでしょうか。
ページサイズがそれだけあるという事は、TreeView を表現するための HTML だけでなく、ViewState に保持されるデータもちょっと凄い事になっているような気がします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-16 21:27
引用:

きくちゃんさんの書き込み (2006-01-16 19:04) より:

当該コントロールは使った事ありませんが、初期状態では最上層のノードだけを取得しておいて、展開イベントで子ノードを取得 / 折りたたみでクリアすれば、動きが軽くなるのではないでしょうか。


それは最初に「試みた」という書き込みがあったかと思います。
ただ、PostBack 云々の問題で〜 という展開だったと思うのですが... (^^;)

実装自体は Expand イベントあたりで、できるハズですけどね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-01-17 09:32
じゃんぬねっとさん、お早うございます。

引用:

それは最初に「試みた」という書き込みがあったかと思います。
ただ、PostBack 云々の問題で〜 という展開だったと思うのですが... (^^


あ、「大量データをツリー表示する場合」にどうするか? という質問だと思ったので、
「そのやり方で良いんじゃない?」
というのが前回の投稿の主旨でした。

展開/縮小の度にポストバックするのはイヤだけど、そうするとサイズが大きくて(初期化処理が重くなっている可能性も)「開くのに時間がかかる」、という事ですよね?>MONSTさん

あとは、試した事ありませんけど、AJAX という手もアリかも知れませんね。
ただ、子ノードを取得する際にサーバのレスポンスが悪かったりすると、IE 自体が無応答になるような気がしますが、どうなんでしょう?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-01-17 10:44
引用:

あとは、試した事ありませんけど、AJAX という手もアリかも知れませんね。



面白そうですね。

DHTML Tree View of Arbitrary Depth using AJAX
http://www.codeproject.com/aspnet/ajax_treeview.asp
MONST
会議室デビュー日: 2005/09/30
投稿数: 9
投稿日時: 2006-01-19 09:40
引用:

きくちゃんさんの書き込み (2006-01-17 09:32) より:
じゃんぬねっとさん、お早うございます。

引用:

それは最初に「試みた」という書き込みがあったかと思います。
ただ、PostBack 云々の問題で〜 という展開だったと思うのですが... (^^


あ、「大量データをツリー表示する場合」にどうするか? という質問だと思ったので、
「そのやり方で良いんじゃない?」
というのが前回の投稿の主旨でした。

展開/縮小の度にポストバックするのはイヤだけど、そうするとサイズが大きくて(初期化処理が重くなっている可能性も)「開くのに時間がかかる」、という事ですよね?>MONSTさん

あとは、試した事ありませんけど、AJAX という手もアリかも知れませんね。
ただ、子ノードを取得する際にサーバのレスポンスが悪かったりすると、IE 自体が無応答になるような気がしますが、どうなんでしょう?




ツリーに表示するデータが増加した為、どうしようか?ということで
展開時にExpandイベントで下層の情報を取得し表示するといる方法にたどりつきました。
ただツリー以外の部分も結構重く、展開時にポストバックするのもレスポンスが悪い為
ポストバックさせたくないというのが現状です。
MONST
会議室デビュー日: 2005/09/30
投稿数: 9
投稿日時: 2006-01-19 09:48
引用:

todoさんの書き込み (2006-01-17 10:44) より:
引用:

あとは、試した事ありませんけど、AJAX という手もアリかも知れませんね。



面白そうですね。

DHTML Tree View of Arbitrary Depth using AJAX
http://www.codeproject.com/aspnet/ajax_treeview.asp



おはようございます。

早速拝見させて頂きました。
サンプルソースをダウンロードしようと思ったのですが
メンバー登録が必要みたいで・・・
メールアドレスを入力してサインアップしても問題ありませんでしょうか?

スキルアップ/キャリアアップ(JOB@IT)