ExtJs的Tree控件如何在节点的单击事件中获取该节点相关的属性? 假如Tree控件的数据源有三个属性,id,name,href分别代表节点的id,名字和链接,当我单击一个节点时,我如何得到该节点的href?(id和name可以通过节点自带的属性得到,但href是自定义属性,不知道如何得到) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 构造树节点的时候赋值 oNode.attributes = {href:'xxxxx'};点击的时候直接取 oNode.attributes.href 但是不知道如何得到对应该节点数据源。也就是说,不知道href的值是什么。 要看如何构造树例子:从xml构造树function treeNodeFromXml(oXmlEl) { if(oXmlEl.nodeType != 1) return null; var oCfg; oCfg = {text:oXmlEl.getAttribute("name")}; oCfg.expanded = true; var oNode = new Ext.tree.TreeNode(oCfg); oNode.attributes = { guid:oXmlEl.getAttribute("guid"), teacher_name:oXmlEl.getAttribute("name"), ctype:oXmlEl.getAttribute("ctype") }; oNode.on("click", editHandler); for(var i=0;i<oXmlEl.childNodes.length;i++){ if (oXmlEl.childNodes[i].nodeType == 1) { var oChild = treeNodeFromXml(oXmlEl.childNodes[i]); if (oChild) oNode.appendChild(oChild); } } return oNode;} 你这里的节点是new出来的,但是我的节点是通过Loader自动生成的啊,会有冲突吗?不会要改Ext的底层代码吧?你这段代码可以自动获取到数据源对应的属性吗? 也是load加载的呀,load之后触发 构造树oProxy.load(null, { read: function(oResponse) { var oDoc = oResponse.responseXML; oTree.setRootNode(treeNodeFromXml(oDoc.documentElement||oDoc)); } }, oTree.render, oTree); 我说的不是load,我说的是loader。例如:loader: new Ext.tree.TreeLoader({ dataUrl: 'json.aspx', uiProviders: { 'col': Ext.tree.ColumnNodeUI }}) 求助,js代码同一页面不能调用两次. 脚本不兼容问题 o.setHomePage(Domain);点是点否什么知道? 幫忙看下js動態引入的問題 浮动窗口代码求肋!很急在线等! 材料的选钢号问题 如何用JAVASCRIPT来做判断用户登录正确或错误的弹出窗口...大家帮帮忙 有没有办法在一个FRAME里,只有TABLE带滚动条,别的控件不带滚动条? 秘密问题!(急) 如何使用js调节页面大小让页面自动适应浏览器和屏幕的大小 各位我遇到了一个问题,请教大家,想让浮层的高度自适应但是被屏幕高度挡住了?怎么办? jquery对于同一事件能绑定多个响应函数?
点击的时候直接取 oNode.attributes.href
例子:从xml构造树function treeNodeFromXml(oXmlEl) {
if(oXmlEl.nodeType != 1) return null;
var oCfg;
oCfg = {text:oXmlEl.getAttribute("name")};
oCfg.expanded = true;
var oNode = new Ext.tree.TreeNode(oCfg);
oNode.attributes = {
guid:oXmlEl.getAttribute("guid"),
teacher_name:oXmlEl.getAttribute("name"),
ctype:oXmlEl.getAttribute("ctype")
};
oNode.on("click", editHandler);
for(var i=0;i<oXmlEl.childNodes.length;i++){
if (oXmlEl.childNodes[i].nodeType == 1) {
var oChild = treeNodeFromXml(oXmlEl.childNodes[i]);
if (oChild) oNode.appendChild(oChild);
}
}
return oNode;
}
你这段代码可以自动获取到数据源对应的属性吗?
read: function(oResponse) {
var oDoc = oResponse.responseXML;
oTree.setRootNode(treeNodeFromXml(oDoc.documentElement||oDoc));
}
}, oTree.render, oTree);
loader: new Ext.tree.TreeLoader({
dataUrl: 'json.aspx',
uiProviders: {
'col': Ext.tree.ColumnNodeUI
}
})