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

我们接dojoTree Controller(1)继续讨论 TreeLoadingController
1:该类在TreeBasicController基础上增加了RPCUrl和RPCActionParam(默认为action)两个参数。解释这两个参数必须看下面的代码:
if (this.RPCUrl == "local") {
   var dir = document.location.href.substr(0, document.location.href.lastIndexOf('/'));
   var localUrl = dir+"/"+action;
   //dojo.debug(localUrl);
   return localUrl;
  }

  if (!this.RPCUrl) {
   dojo.raise("Empty RPCUrl: can't load");
  }

  return this.RPCUrl + ( this.RPCUrl.indexOf("?") > -1 ? "&" : "?") + this.RPCActionParam+"="+action;

2:通用的错误处理器:
  RPCErrorHandler: function(type, obj, evt) {
  alert( "RPC Error: " + (obj.message||"no message"));
 },
可以自己定义处理方式。

3:看以下runRPC的这段代码,就能明白服务器端该怎么处理请求:
dojo.io.bind({
   url: kw.url,
   /* I hitch to get this.loadOkHandler */
   handle: dojo.lang.hitch(this, handle),
   mimetype: "text/json",
   preventCache: true,
   sync: kw.sync,
   content: { data: dojo.json.serialize(kw.params) } 
  });
4:loadRemote是动态装载该节点的子节点的方法,可以看看该方法的rpc部分:
var params = {
   node: this.getInfo(node),
   tree: this.getInfo(node.tree)
  };
dojo.io.bind({
   url: kw.url,
   /* I hitch to get this.loadOkHandler */
   handle: dojo.lang.hitch(this, handle),
   mimetype: "text/json",
   preventCache: true,
   sync: kw.sync,
   content: { data: dojo.json.serialize(kw.params) }
  });
5:相对TreeBasicController,该Controller还重写了doMove和doCreateChild方法。
doMove: function(child, newParent, index) {
  /* load nodes into newParent in sync mode, if needed, first */
  if (newParent.isTreeNode && newParent.state == newParent.loadStates.UNCHECKED) {
   this.loadRemote(newParent, true);
  }

  return dojo.widget.TreeBasicController.prototype.doMove.apply(this, arguments);
 },
可以看到是在同步处理完服务器的请求后,再执行的客户端操作。因此我们只要在服务器端处理添加新节点和移动节点时,只要返回true或false就可以了。

posted on 2006-11-22 23:15 不做浮躁的人 阅读(983) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

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

常用链接

留言簿(9)

随笔分类(31)

随笔档案(75)

文章分类(1)

文章档案(3)

搜索

  •  

最新评论

阅读排行榜

评论排行榜