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

樓主

Jason
門外漢
0 30
586 122
發送站內信

我使用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感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

Jason
檢舉此回應
目前第一個問題我改用遞迴方式解決了
我也找到一個更好的範例網站 http://dojo.telerik.com/
讓拖曳功能更完善了

現在剩下第2個問題 就真的需要各位大大的教學了
本篇文章回覆於2017-12-04 11:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
由於不知道您的資料表結構如何

假設,是「節點代號、節點父層代號」這樣的結構
那麼,您應該是修改拖拉後,節點的父層,換成誰,然後去維護「該節點」的「父層代號」

大概是這樣的方向

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

Jason
檢舉此回應
謝謝TOPCAT

html有辦法下甚麼語法去取得TreeView的值嗎?
本篇文章回覆於2017-12-05 08:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
html有辦法下甚麼語法去取得TreeView的值嗎?


因為沒有看到您的程式碼,因此也不知道要怎麼告訴您依據您的寫法要怎麼處理
是否方便將程式碼貼出來

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

Jason
檢舉此回應
TOPCAT
我後來發現這個套件需要錢,所以我考慮換套件了

我現在再研究使用 http://www.treejs.cn/v3/demo.php#_101

ztree的方法我看到他的範例也有可以拖曳等功能,也是免費的

但我依照最基礎範例實作有下載他的相關js css
一直出錯誤訊息

$.fn.zTree.init($("#treeDemo")無法取得未定義或 Null 參考的屬性 'init'

不太懂程式碼幾乎一樣但我的卻會報錯,想請問您遇到這種該怎麼解決?
本篇文章回覆於2017-12-05 10:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Jason
檢舉此回應
附上練習的程式碼

本篇文章回覆於2017-12-05 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我用一個html來測試,是OK的唷

請參考



本篇文章回覆於2017-12-05 15:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Jason
檢舉此回應
謝謝Topcat大大 可能我會出錯的原因是因為套件版本有衝突 我把以前的套件先註解掉後可以顯示出來了

以下是我目前修改後的代碼


也實現了拖曳的功能
而代碼中@Html.Raw(ViewData["TreeView"]); 為我傳至View的資訊跟範例一樣的寫法差在我是動態資料
我現在想取得拖曳後的資料我該如何取得呢?因為我需要將拖曳後資訊寫回資料庫,還請您教學一下了


本篇文章回覆於2017-12-05 15:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我現在想取得拖曳後的資料我該如何取得呢?

如果託拉放您自己寫的
拖的物件(Node)他的id您應該知道
放的時候,您應該也會知道他放在哪一層裡面,也就是知道pid

知道id,知道後來的pid,那麼維護還有什麼問題?

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

Jason
檢舉此回應
topcat 請問您會如何撰寫呢?
本篇文章回覆於2017-12-06 11:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Jason
檢舉此回應
我現在是參考 http://www.treejs.cn/v3/demo.php#_302
他有寫LOG但是我還是無法取得拖曳後父階與子階ID


用treeNodes取childDrag /parentTId 都是undefined 不知道如何才是正確的取法
本篇文章回覆於2017-12-06 13:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
onDrop的時候,能不能取得targetNode的id
那個是否是節點父層的id?

我沒有完整的Code只能提示您去觀察哪個部分

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

topcat
捐贈 VP 給 topcat 檢舉此回應
是否可能
您先將您目前的Tree的頁面,寫成一個可以單獨運作的html
這樣小喵有完整測是的Code,也比較容易幫您

^.^a
本篇文章回覆於2017-12-06 23:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

Jason
檢舉此回應
TopCat
我主要是參考
http://www.treejs.cn/v3/demo.php#_302
他範例中有移動後出Log檔 我想說是否能從中去取得相關資訊,但我嘗試了很久 都是出undefined


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

topcat
捐贈 VP 給 topcat 檢舉此回應
我需要的是你的程式碼
找出你的程式碼中造成undefined的地方與問題

從官方資訊,不是你的程式碼,我怎麼告訴您您的問題在哪

就好比您一直說您手上的東西有問題
想看您手上東西問題在哪,您卻一直讓我看店裡的東西
這又怎麼幫您解決您手上東西的問題

還是建議您將您目前的程式碼,整理成一個可以運作的html
我在依據您的Code,告訴您問題在哪

^_^
本篇文章回覆於2017-12-07 09:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   

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