
ASP.NETでツリービューを作成したい。
下記にやりたいことを、記載します。
※”3.シリアライズしたデータをjavascript側へ渡す” 方法を重点的に教えて頂けると幸いです。そもそもこのやり方に問題がある場合はご指摘ねがいます。
[やりたいこと]
・Asp.netで以下の様なツリー階層を作りたい。※ツリーの階層(ノード)は3つ。
・親要素をクリックしたタイミングで、子のノードを作る。(表示する要素が多いためロード時に全て表示するとパフォーマンスがわるいため)
・一度展開されて子ノードが追加されている場合は、何もしない。
A
-|A-1
-|A-1-1
-|A-1-2
-|A-1-3
-|A-2
-|A-2-1
-|A-2-2
B
-|B-1
-|B-1-1
-|B-1-2
-|B-1-3
-|B-2
-|B-2-1
-|B-2-2
[.aspx.cs] サーバサイド
1.DBからtreeviewに追加するデータを取得。
2.取得したデータをjson形式にシリアライズ
3.シリアライズしたデータをjavascript側へ渡す
[javascript or jquery] クライアントサイド
4.ツリー展開時に3.のデータを追加・表示
No.1ベストアンサー
- 回答日時:
一般的に考えれば AJAX で JSON をやり取りする設計になると思います。
サーバー側ではツリー表示をせずに、すべてクライアント側で描画する前提でよいでしょう。サーバー側 asp.net
親要素を引数にとり子要素一覧の JSON を応答する Web API を用意
クライアント側 HTML内のスクリプト
要素を特定する ID を <li data-tree-id="12"> の様に設置
<li> 要素をクリックしたら AJAX で Web API を呼び、子要素一覧 JSON を取る
<li> の配下に配下ツリーを追加して、子要素一覧を画面に追加
例) サーバー側
/api/tree-list?parent=12
↓ 応答
Content-Type: application/json
[{"name":"A-2-1", id:121}, {"name":"A-2-2", id:122}, ... ]
例) クライアント側
document.querySelector("#tree-root")
.addEventListener('click',function(event){
_ let node = event.target.closest('li'); if (!node) return;
_ let treeId = node.dataset.treeId; if (!treeId) return;
_ fetch(`/api/tree-list?parent=${treeId}`)
_ _ .then(response => response.json())
_ _ .then(data => node.appendChild(配下ツリーを作る(data)))
_ _ .then(x => node.dataset.treeId = null);
},false);
参考)
サーバー側 Web API の作り方
https://docs.microsoft.com/ja-jp/aspnet/core/web …
クライアント側 AJAX
https://developer.mozilla.org/ja/docs/Web/Guide/ …
ありがとうございます。
流れ的には、以下の様な感じでしょうか。
クライアント側のツリーイベントクリック→サーバサイド(asp.net)のWebAPIを呼び出しデータを入手。取得したデータをクライアント側の処理でツリーへ追加。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSが全く分かりません、お助け...
-
DLLファイルの逆コンパイラにつ...
-
visual studio 2022でのC#プロ...
-
プログラマー達は何故、プログ...
-
C言語について(初心者)
-
バッチファイルで以下のような...
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
C言語 関数、変数の宣言について
-
プログラミングc++を全く分か...
-
あってる
-
DNCL(共テ用プログラミング言語...
-
逆コンパイルと逆アセンブルの...
-
ArduinoでMouse関数を使用して...
-
Notepad++の関数リスト表示でC...
-
c言語でイベントフラグを使った...
-
C言語の質問です。バイナリ形...
-
int16_t の _t は何?
-
大量のデータを読み込んで表示...
-
C言語の関数のextern宣言
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NETでツリービューを作成し...
-
大規模行列の計算
-
MFCでのタブコントロールに...
-
hana no namae osiete kudasai.
-
[AWS] 取得したURLにスタイルシ...
-
UTF8への変換について
-
XML:連番要素の全ての子要素にx...
-
formタグと、imgObj.src[=strURL]
-
HPビルダー2001で選んで流す。
-
xsl内の変数計算方法とパラメー...
-
XMLSchemaの記述法で質問です。
-
DTDについて
-
XPathでできるか確認
-
Webページに関するさまざまな情...
-
二分探索木と二分探索の違い
-
RSS2.0でitemが空の場合の記述
-
親子関係にない要素を限定して...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
おすすめ情報