不做浮躁的人
          正在行走的人...
          posts - 171,  comments - 51,  trackbacks - 0

          對樹進行一些操作的后臺是Controller類。而RpcController能夠以RPC的方式,Json數據傳遞的方式將前端和后臺進行結合。

          我們可以查看原代碼知道 TreeRPCController 繼承于TreeLoadingController,而TreeLoadingController繼承于TreeBasicController,TreeBasicController繼承HtmlWidget。

          我們先對TreeBasicController進行分析:
          1:DNDController屬性,如果該屬性為“create",那么該Controller就具有拖動的功能。
          if (this.DNDController == "create") {
          ???dojo.require("dojo.dnd.TreeDragAndDrop");
          ???this.DNDController = new dojo.dnd.TreeDNDController(this);
          ??}

          2:dieWithTree:表示當樹Destroy,Controller是否同時Destroy。
          3:listenTree:將Controller綁定Tree的4個事件,如果DNDController存在,也同時綁定Tree的時間。
          createDOMNode,treeClick,treeCreate,treeDestroy。
          比如:兩個綁定的原代碼:
          onCreateDOMNode: function(message) {

          ??var node = message.source;


          ??if (node.expandLevel > 0) {
          ???this.expandToLevel(node, node.expandLevel);
          ??}
          ?},

          ?// perform actions-initializers for tree
          ?onTreeCreate: function(message) {
          ??var tree = message.source;
          ??var _this = this;
          ??if (tree.expandLevel) {
          ???dojo.lang.forEach(tree.children,
          ????function(child) {
          ?????_this.expandToLevel(child, tree.expandLevel-1)
          ????}
          ???);
          ??}
          ?},
          4:改controller還提供了canMove,canRemoveNode,canCreateChild等方法判斷是否能夠移動節點,刪除節點和創建子節點。移動節點的方法是move,在move方法體里面,首先調用canMove,判斷是否能夠移動,然后是調用doMove方法執行具體的移動,move方法返回true或false。其它刪除和創建同理。
          三個方法簽名如下:
          move: function(child, newParent, index)
          removeNode: function(node, callObj, callFunc)
          createChild: function(parent, index, data, callObj, callFunc)


          未完...

          posted on 2006-11-22 22:36 不做浮躁的人 閱讀(1330) 評論(1)  編輯  收藏

          FeedBack:
          # re: dojoTree Controller(1)
          2007-07-31 23:26 | davidpang
          可以說一下TreeBasicController里頭的 removeNode: function(node, callObj, callFunc)是怎樣用嗎  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 广汉市| 达拉特旗| 政和县| 晋江市| 滨海县| 高陵县| 彩票| 洪湖市| 温宿县| 土默特左旗| 定州市| 乌鲁木齐县| 霍林郭勒市| 东宁县| 新泰市| 诏安县| 乐亭县| 德钦县| 宣威市| 滁州市| 昌吉市| 桂平市| 凤台县| 红河县| 旌德县| 广河县| 齐河县| 长治市| 登封市| 忻州市| 乌兰浩特市| 胶州市| 普定县| 九龙城区| 雷州市| 阳山县| 柘城县| 柯坪县| 昌都县| 疏勒县| 广安市|