質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.22%

ASP.NETのツリー構造について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,100

tkstks

score 8

初めまして。
初めて質問をさせて頂きますので、不備不足がありましたら、ご指摘ください。

現在ASP.NETを利用してWebアプリの開発を行っています。
その中で、ツリー構造の目次の並び替え(jsTreeの様なイメージ)及び、ツリー構造内の値を特定箇所にドラッグアンドドロップする処理があります。

TreeViewとJqueryを利用して、ドラッグアンドドロップする処理はできたのですが、並び替えがうまくできません。
できればTreeViewを使用したまま、機能の実装を行いたいのですが、並び替えは可能なのでしょうか。

開発環境:Visual Studio2015
ASP.NET(VB)
IE環境:9〜Edge
その他:ツリー内部の値はIISを利用して取得

なにかご存知の方は、ご教授お願いします。

--追記--
ASP.net WebForm
.NETフレームワーク:3.5

ツリー内のデータは、クライアントによってデータを取得するツール?が異なる(SQLserverやPostgres等)ので、IISを利用しています。
最終的にDB内のデータは、DataTableに格納されて戻ってきます。

並び替えで実現したいことは、ドラッグアンドドロップによる並び替えです。口下手なので簡単に図化しますと、

処理前
1.aaaaaa
∟1.1bbbbb
∟ 1.2ccccc
2.dddddd
∟2.1eeeee

2.1eeeeeをドラッグして、1.aaaaaaへドロップ

重ね重ねすみません。
インデントをスペースで開けていたのですが反映されていませんでした。
使用しているのはTreeViewで間違いありません。

IISはWebサービスを別途作成しているので、そちらを使用しております。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • SurferOnWww

    2018/01/30 12:48

    ASP.NET といっても Web Forms, MVC, WebPages, Web API 等いろいろありますが何ですか?(読めばわかるとは言わないでくださいね。質問者さんが最初に書くべきことです)。あと、.NET のバージョンを書いてください。

    キャンセル

  • SurferOnWww

    2018/01/30 12:50

    そして、TreeView のデータソースは何で、何をどのように並べ替えるのか等々が質問からは分かりません。そのあたりの、もっと具体的な情報を提供できませんか?

    キャンセル

  • SurferOnWww

    2018/01/30 14:44

    せっかく説明いただいたのですが、何をしているのか・したいのかが理解できません。「ツリー内部の値はIISを利用して取得」というところの意味が分かりませんし(IIS からデータを取得するということは普通はないはず)、「口下手なので簡単に図化します」というところは TreeView ではないようですし・・・ TreeView というのは間違いないですか? 「ドラッグアンドドロップによる並び替え」というのは TreeView に行うのではなく table に対して行うということではないのですか? この記事の例のように→ http://surferonwww.info/BlogEngine/post/2012/11/11/table-drag-and-drop-jquery-plugin.aspx

    キャンセル

  • SurferOnWww

    2018/01/30 16:33 編集

    ASP.NET の TreeView は http://surferonwww.info/BlogEngine/post/2011/10/30/Adjustment-of-vertical-spacing-of-nodes-shown-in-TreeView.aspx の画像にありますように table, tr, td 要素を骨格にしてその中に img, a 要素で構成されているはずです。なので、クライアントスクリプトでドラッグ&ドロップして質問者さんの言う「並び替え」を行うのは無理っぽいです(100% 不可能とまでは言い切れませんがそれに近いと思います)。何らかの方法でポストバックして、データソースを並び替えて TreeView を再描画するほか適当な手段はなさそうな気がします。クライアント側だけで処置するとすると、上のコメントで紹介したライブラリを使うぐらいですが、現実的ではなさそうです(どの行でも任意に動かせるので Tree が崩れそう)。お役に立てずすみませんが、他の方の回答をお待ちください。

    キャンセル

回答 1

check解決した方法

0

やはりTreeViewでの並び替えは出来なさそうなので、jsTreeを使用することにしました。
SurferOnWwwさん、情報提供ありがとうございました。
次に質問する際は、もう少し細かく質問内容をまとめられるように努力します。

ご覧になった皆さんもありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る