dojo中TabContainer的问题,ajax高手进!!

qingyuan18 2007-04-02 02:57:23
我用dojo的API来动态生成widget组件,但在往TabContainer中添加Panel的时候遇到了问题:dojo里头的TabContainer没有对应的API来往Container中插LinkPane,ContentPane等!!

我尝试用DOM 的appendChild()来动态的往TabContainer加dojo的LinkPane转化后的Dom元素,但是不行,添加的时候报:Could not convert JavaScript argument,似乎根本无法识别dojo的LinkPane对象对应的Dom节点

是怎么回事呢?dojo这么强大的框架怎么会连这种API都没有呢,哪位高人能否指点一二?

...全文
829 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingyuan18 2007-04-03
  • 打赏
  • 举报
回复
to:shenglijay(探索者)
我在tabContainer中加的LinkPane是这样生成的:

contentWigdet = dojo.widget.createWidget("LinkPane",{id:this.tabId,href:this.tabContent,label:this.tabName});
var tabNameTextNode = document.createTextNode(this.tabName);
contentWigdet.domNode.appendChild(tabNameTextNode);

即在dojo的wigdet的对应dom节点下增加了TextNode节点,这会造成tab.domNode has no properties的错误么?没道理啊~~
shenglijay 2007-04-03
  • 打赏
  • 举报
回复
我自己下了一个版本 dojo-0.4.1-minimal
这些api都是从它 tests/widget 下很多例子学来的,而且我们公司也一直都在用dojo来做项目啊,个人觉得dojo这东西还是很成熟的,我给你门的那个例子,在我这边可以正常的run起来啊
-_-
shenglijay 2007-04-03
  • 打赏
  • 举报
回复
不会不行啊,我这边用的话是好的啊。
shenglijay 2007-04-03
  • 打赏
  • 举报
回复
这算不算dojo的bug呢
---------------------
不太清楚,呵呵。
不过你解决了问题就是好事。
qingyuan18 2007-04-03
  • 打赏
  • 举报
回复
问题找到了:dojo的widget实例如果做为函数返回值的形势获得的话,tabContainer.addChild()该返回的widget实例是不认的,我的LinkPane,ContentPane的生成是封装在一个tabItem.js类中的,而tabContainer是封装在tabCreater.js类中的,所以会存在这种问题,我把tabItem.js中生成LinkPane,ContentPane代码摞到tabCreater.js中就没有问题了

这算不算dojo的bug呢,有时间的话得到dojo官方网站的FAQ上去问问

谢谢shenglijay(探索者)的帮助,csdn上用ajax的不多啊,这点比javaEye有一定的差距,呵呵~~
qingyuan18 2007-04-02
  • 打赏
  • 举报
回复
to:shenglijay(探索者)
tabContainer.addChild的API在报错:tab.domNode has no properties

我怀疑dojo这东西还是有bug的~~
qingyuan18 2007-04-02
  • 打赏
  • 举报
回复
还有一个问题:LinkPane有没有添加TabName的API,也找不到,你的API是在哪里找到的?dojo官方网站上的api都没有这些啊~~
yuzhenbj 2007-04-02
  • 打赏
  • 举报
回复
shenglijay(探索者)
好像不行
yuzhenbj 2007-04-02
  • 打赏
  • 举报
回复
我也是此问题,期待高手!
shenglijay 2007-04-02
  • 打赏
  • 举报
回复
可以啊,怎么不可以?

<html>
<head>
<script>
var djConfig = {isDebug:false};
</script>
<script src="dojo-0.4.1-minimal/dojo.js"></script>
<script>
dojo.require("dojo.event.*");
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.hostenv.writeIncludes();
</script>
<script>
function create(){
var tabContainer = dojo.widget.createWidget("TabContainer",{id:"tabCon"});
var contentPane = dojo.widget.createWidget("ContentPane",{id:"content",label:"ContentPane 1"});
var linkPane = dojo.widget.createWidget("LinkPane",{id:"link",label:"LinkPane 1"});
tabContainer.addChild(contentPane);
tabContainer.addChild(linkPane);
document.body.appendChild(tabContainer.domNode);
}
window.onload=create;
</script>
</head>
<body>

</body>
</html>
chengchaog 2007-04-02
  • 打赏
  • 举报
回复
我用dwr,不会,友情up
yslf8517 2007-04-02
  • 打赏
  • 举报
回复
接分。

加人气
yeah920 2007-04-02
  • 打赏
  • 举报
回复
不懂,帮up

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧