需要实现 在一个<input type="text" id="tree"/>鼠标点击文本框 展示一个小窗口上面有一棵树,然后点击选中的节点,小窗口关闭,被选中节点的名称显示在文本框中。数据用json。
我现在在input中用onclick,打开一个iframe,iframe中显示出了这棵树,可是该怎么让这个节点的信息显示呢?求助。
我现在在input中用onclick,打开一个iframe,iframe中显示出了这棵树,可是该怎么让这个节点的信息显示呢?求助。
解决方案 »
- chrome不支持js的navigate(url)函数?
- for循环的疑惑,请教
- 大虾帮我计算一下窗口高度!头大了
- 怎样获取对象名称,var s=new myObj;myObj是我自定义的对象...
- "完成该操作所需的数据还不可用"?是什么错误啊?
- window.open()与post提交??
- fason,goodname,yougu110,emu来看看
- 在javascript 写的函数中能不能调用ASP 的语句,在线等
- 为什么程序名字都是MM_*****()
- 谁有点击一个链接就出现一个框的提示文字的代码
- 使用activex control test container 测试脚本,提示ms jscript编译错误
- 哪个手册中讲到window对象的external属性?
<Component>
<ext:TreePanel ID="TreePanel4" runat="server" Height="230" Title="上级部门" UseArrows="true" AutoScroll="true" Animate="true">
<Listeners>
<CheckChange Handler="this.dropDownField.setValue(getTasks(this), false);" />
</Listeners>
</ext:TreePanel>
</Component>
<Listeners>
<Expand Handler="this.component.getRootNode().expand(true);" Single="true" Delay="10" />
</Listeners>
</ext:DropDownField>方法在这
var getTasks = function (tree) {
var msg = [],
selNodes = tree.getChecked();
msg.push("["); Ext.each(selNodes, function (node) {
if (msg.length > 1) {
msg.push(",");
} msg.push(node.data.text);
}); msg.push("]"); return msg.join("");
};
你要的功能适合用Ext.Window来做
var treePan=New Ext.TreePanel({...});//你自己的tree
var treeWnd=new Ext.Window({items:[treePan]});
treePan.on('click',function(node){
var obj=document.getElementById('tree');
obj.value=node.text;
treeWnd.hide();
});
在文本框的点击事件中写上:
treeWnd.show();
就ok了,当然还可以用treeWnd.setPosiontion(x,y)设置一下小窗体的位置,
这样比用ifame好多了
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<link type="text/css" href="/ext/resources/css/ext-all.css" rel="Stylesheet" />
<script type="text/javascript" src="/ext/ext-base.js"></script>
<script type="text/javascript" src="/ext/ext-all.js"></script>
</head>
<script type="text/javascript">
var treeWnd;
Ext.onReady(function(){
var json=[{text:'选项1',children:[{text:'选项11',leaf:true}]},{text:'选项2',leaf:true}];//你可以用自己的json
var treePan=new Ext.tree.TreePanel({
root:{text:'请选择',children:json}
});
treeWnd=new Ext.Window({items:[treePan],width:120,height:180,closeAction:'hide'});
treePan.on('click',function(node){
var obj=document.getElementById('tree');
obj.value=node.text;
treeWnd.hide();
}); })
function showTree()
{
treeWnd.show();
var obj=document.getElementById('tree');
treeWnd.setPosition(obj.offsetLeft,obj.offsetTop+28);
}
</script>
<body>
<form id="form1" runat="server">
<div>
<input id='tree' type="text" onclick="showTree();" style="margin-left:90px;margin-top:30px;" />
</div>
</form>
</body>
</html>代码测试了,注意改正确extjs文件的路径句可以了