支持AJAX的TreeView樹(shù)例子,使用省市縣三級xml作演示 - 水邊的專(zhuān)欄 - CS...
支持AJAX的TreeView樹(shù)例子,使用省市縣三級xml作演示 收藏
前段時(shí)間做項目,因為要用TreeView來(lái)展示組織架構
結果發(fā)現員工太多,上萬(wàn)人,導致TreeView加載時(shí)數據量太大造成IE假死
就去網(wǎng)上搜索TreeView+Ajax的例子,結果無(wú)一例外的都是自己給TreeView添加自定義的js方法,然后自己寫(xiě)ajax功能來(lái)動(dòng)態(tài)填充TreeView
還有一部分同志,干脆扔掉TreeView已經(jīng)開(kāi)發(fā)好的程序,改用Dtree(也要改代碼)等其它樹(shù)來(lái)實(shí)現
后來(lái)查詢(xún)MSDN,發(fā)現TreeView本身就支持AJAX動(dòng)態(tài)填充樹(shù)的功能
客戶(hù)端 TreeView 節點(diǎn)填充
任何在瀏覽器功能配置文件中將 SupportsCallback 屬性設置為 true 的瀏覽器都支持客戶(hù)端節點(diǎn)填充。
借助客戶(hù)端節點(diǎn)填充,TreeView 控件可以通過(guò)從客戶(hù)端腳本中調用服務(wù)器的 TreeNodePopulate 事件來(lái)填充節點(diǎn),而無(wú)需完全回發(fā)至服務(wù)器。有關(guān)客戶(hù)端節點(diǎn)填充的更多信息,請參見(jiàn) PopulateNodesFromClient。
并且MSDN也提供了一個(gè)例子,其實(shí)就是
1、把TreeView控件的PopulateNodesFromClient和EnableClientScript屬性置為true;
2、把要動(dòng)態(tài)展開(kāi)的子結點(diǎn)的父結點(diǎn)的Expanded屬性置為false(如果展開(kāi),那還要動(dòng)態(tài)展開(kāi)干嗎),PopulateOnDemand屬性置為true;
3、提供OnTreeNodePopulate方法,在方法填充那些動(dòng)態(tài)子結點(diǎn)。
完成了上面3步,TreeView控件就實(shí)現了AJAX動(dòng)態(tài)填充子節點(diǎn)了
做了一個(gè)例子,請到這里下載:
這個(gè)例子從網(wǎng)上下載了一個(gè)省市縣的3級xml文件,作為ajax樹(shù)聯(lián)動(dòng)展示的例子
并實(shí)現了選中父結點(diǎn)時(shí),選中全部子結點(diǎn);
取消一個(gè)子結點(diǎn),同時(shí)取消全部級別的父結點(diǎn)。
不過(guò)有一個(gè)疑惑:
OnTreeNodePopulate方法,不能取得
e.Node.ToolTip和e.Parent屬性,取到都是null,而如果用按鈕提交頁(yè)面,就可以取到
如果你知道,跟我一起探討一下吧。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。