台灣最大程式設計社群網站
線上人數
1409
 
會員總數:241760
討論主題:187062
歡迎您免費加入會員
討論區列表 >> ASP.NET >> MVC 動態TreeView運用疑問
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MVC 動態TreeView運用疑問
價值 : 50 QP  點閱數:336 回應數:22

樓主

Jason
門外漢
0 31
638 124
發送站內信

我使用ASP.NET C# 開發一個網頁

我想運用TreeView方式提供使用者可編輯自己的Sidebar順序
所以我有建立一張資料表專門記錄登入者ID 與 與該名使用者之Sidebar階層關係
目前遇到2個問題

1.如遇無限階層該如何寫

例如:
名稱 父階ID ID
頁面1 0 1
頁面2 1 2
頁面3 1 3
頁面4 3 4
頁面5 1 5
頁面6 0 6
頁面7 6 7
頁面8 0 8

像這樣而我參考了 https://demos.shieldui.com/web/treeview/drag-and-drop
進行練習發現我不知道如何撰寫一個可不限總共有幾階的程式想請教各位大大 我該如何撰寫

目前我的寫法是先找父階為0 再去用他的ID找父階是他的ID的 但這樣變成是假如有3階我就要寫3個foreach 4階就4個....
能有有大大可以教我該如何寫呢?



2.使用者拖曳完成後我該如何取得使用者修改後階層,因為要回存至資料庫



搜尋相關Tags的文章: [ ASP.NET ] , [ TreeView ] ,
本篇文章發表於2017-12-04 10:22
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
16樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵自己來吧

從官方下載的範例中,找到目錄檔案為:「exedit/drag.html」

相關內容如下:


小喵在beforeDrop這個function加上觀察的console.log,觀察出相關的物件為treeNodes, targetNode
進一步,
從treeNodes[0].id可取得移動Node的id
從targetNode.id可取得他後來的pid

最後小喵把結果顯示在divShowMoveNode中

您參考看看
^.^a
本篇文章回覆於2017-12-07 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
17樓
作者回應

Jason
檢舉此回應



最後我希望用按鈕取得所有階層的資訊

本篇文章回覆於2017-12-07 10:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
18樓
作者回應

Jason
檢舉此回應
好的 謝謝您 我試試看
本篇文章回覆於2017-12-07 10:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
19樓
作者回應

Jason
檢舉此回應
我在想是否有方法能在我點擊按鈕時將當前最後所有階層資訊一次取出,因為拖曳時移動的Log其實對我來說是不需要的
本篇文章回覆於2017-12-07 10:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
20樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我在想是否有方法能在我點擊按鈕時將當前最後所有階層資訊一次取出,因為拖曳時移動的Log其實對我來說是不需要的


需求又變了喔
^.^a

建議您未來提問
1.相關線索提供完整
2.提問精準,把您真正想要的,直接講清楚說明白
^.^a

去看官網的API,可以看到getNodes的function
所以可以用這個著手



^.^a
本篇文章回覆於2017-12-07 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
21樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵個人覺得
把整顆樹丟出來,不見得會比較好維護資料庫

小喵做的話,會有兩種做法
1.自己記錄異動,然後傳回有異動的相關內容,一次維護
2.即時維護,有異動發生,即時ajax傳回後台,直接維護異動當下的那一個node

您參考看看~

^_^
本篇文章回覆於2017-12-07 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
22樓
作者回應

Jason
檢舉此回應
好的 謝謝您
本篇文章回覆於2017-12-07 14:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   

回覆
如要回應,請先登入.