treepanel getChecked问题

问题描述

这是树的代码 我想用下面的代码来获得选中的idvar b = Ext.tree.getChecked();var check = new Array();for (var i = 0; i < b.length; i++) {check.push(b[i].id);}for (var i = 0; i < check.length; i++) {Ext.DomHelper.append('form1',{tag:'input',name:'checks',type:'hidden',value:check[i]})}//把获得的id通过form提交到action 上面这些代码 应该放到什么地方?Ext.onReady(function() {Ext.BLANK_IMAGE_URL = "/dtjcsy/pages/js/ext/resources/images/default/s.gif";var Tree= Ext.tree;var form =Ext.get('form1');var loader = new Ext.tree.TreeLoader;var tree = new Tree.TreePanel({el:'tree-div', autoScroll:true, animate:true, enableDD:true, frame:false, border:false, useArrows:true, checkModel:'cascade', onlyLeafCheckable:false, rootVisible:true, bodyStyle:'background-color:#b4d5f5', containerScroll: true,loader: new Tree.TreeLoader({dataUrl:'rightAction.action',baseParams:{roleId:2},baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }}),listeners:{load:function(loader,node,response){}, checkchange:function(node,checked){ } }});var root =new Tree.AsyncTreeNode({text:"可用权限列表",draggable:false,id:'0'});tree.setRootNode(root);tree.render();root.expand(true);}); 问题补充:myali88 写道

解决方案

哦,有点问题,把form.submit = function() { 改成form.dom.submit = function() {
解决方案二:
var form = Ext.get('form1'); 你页面上有没有id为“form1”的form标签啊?
解决方案三:
Ext.BLANK_IMAGE_URL = "/dtjcsy/pages/js/ext/resources/images/default/s.gif";Ext.onReady(function() {var tree = new Tree.TreePanel({renderTo:'tree-div', autoScroll:true, animate:true, enableDD:true, frame:false, border:false, useArrows:true, checkModel:'cascade', onlyLeafCheckable:false, rootVisible:true, bodyStyle:'background-color:#b4d5f5', containerScroll: true,loader: new Tree.TreeLoader({dataUrl:'rightAction.action',baseParams:{roleId:2},baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }}),root : new Tree.AsyncTreeNode({text:"可用权限列表",draggable:false,id:'0'})});var form = Ext.get('form1');form.submit = function() {var ids = tree.getChecked('id') , len = ids.length; for (var i = 0; i < len ; i++) {Ext.DomHelper.append('form1',{tag:'input',name:'checks',type:'hidden',value:ids[i]})}}});这样应该就可以了。
解决方案四:
Ext.BLANK_IMAGE_URL = "/dtjcsy/pages/js/ext/resources/images/default/s.gif";Ext.onReady(function() {var tree = new Tree.TreePanel({renderTo:'tree-div', autoScroll:true, animate:true, enableDD:true, frame:false, border:false, useArrows:true, checkModel:'cascade', onlyLeafCheckable:false, rootVisible:true, bodyStyle:'background-color:#b4d5f5', containerScroll: true,loader: new Tree.TreeLoader({dataUrl:'rightAction.action',baseParams:{roleId:2},baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }}),root : new Tree.AsyncTreeNode({text:"可用权限列表",draggable:false,id:'0'})});var form = Ext.get('form1');form.submit = function() {var ids = tree.getChecked('id') , len = ids.length; for (var i = 0; i < len ; i++) {Ext.DomHelper.append('form1',{tag:'input',name:'checks',type:'hidden',value:ids[i]})}}});这样应该就可以了。
解决方案五:
这样调用肯定不对,我是直接按你写的来的,具体getChecked方法的调用要在Tree实例上调用:var tree = new Tree.TreePanel({ //...tree.getChecked('id')
解决方案六:
<form onsubmit="return beforeSubmit()"> 标签里面加上onsubmit 把代码放到beforeSubmit的函数里面 最后return true
解决方案七:
引用我只是用了ext的树 别的都不是ext的 这个树放在页面的一个form里 我想提交form 的时候把节点id也提交了 我知道,那你就可以在提交form前调用你上面的那段代码。通过监听submit事件完成。
解决方案八:
引用把获得的id通过form提交到action 上面这些代码 应该放到什么地方? 看你什么时候触发提交form,在哪里触发就在哪里执行上面那段代码。另外,根据getChecked方法的说明,如果要直接获取node上的某个属性,可以直接这样:Ext.tree.getChecked('id'); //返回的数组就是包含id的值,你可以获取其他的值,避免你自己由迭代一次

时间: 2024-09-09 00:07:06

treepanel getChecked问题的相关文章

extjs关于treePanel+chekBox全部选中以及清空选中问题探讨_extjs

复制代码 代码如下: //树 var treePanel = new Ext.tree.TreePanel({ id:'ptree', region:'west', layout:'anchor', border:false, rootVisible: false, root:{}, listeners:{ render: function() { authorityTree(treePanel); /*渲染树*/ }, checkchange: function(node, state) {

extjs 如何将一个弹出的复选框里面选中的信息显示出来?

问题描述 extjs 如何将一个弹出的复选框里面选中的信息显示出来? 在用Extjs做项目,要求是点击主界面的新增按钮,弹出一个框,这个框里有一个空白框, 空白框旁边有一个按钮,叫产品维护,点击这个按钮,弹出一个窗口,里面是一些复选项 ,选中后,如何将这些被选中的信息给显示在之前的那个空白框里,并加上编号? 解决方案 http://cesclub.com/bw/jishuzhongxin/Webjishu/2012/0811/37008.html 解决方案二: 不知你第二次弹出的窗口是什么组件,

extjs怎么计算tree的父节点下面的所有子节点id总和

问题描述 大家好..我现在遇到一个问题就是在extjs中的tree问题..我是想实现判断树的父节点是否被选中,如果选中就累加父节点下面的所有子节点id的总和具体是这样子的:比如父节点A,下面有A1,A2,A3,如果我选中了A,那么如果A1,A2,A3都被选中的话,就累加,如果只选中了A2,A3,那么就累加A2和A3,请问下这个要怎么实现.谢谢了.. 解决方案 解决方案二:这个问题木有难度-去googleExt.ux.TreeCheckNodeUI我给你找了一个,http://blog.csdn.

关于extjs treepanel复选框选中父节点与子节点的问题_extjs

 extjs 如图,实现带有复选框的树,选中父节点时,选中所有子节点.取消所有子节点时,才能取消根节点. 复制代码 代码如下: var Fpanel = new Ext.tree.TreePanel({ id:'ptree', region:'west', layout:'anchor', border:false, rootVisible: false, root:new Ext.tree.AsyncTreeNode({}), listeners:{ "checkchange": f

asp.net中Ext.Net_自定义 TreePanel 控件实现代码

标记 <ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />,Mode="ScriptFiles" 是为了 MyTreePanel 呈现后,保证页面在正确的时机加载,并执行 MyCustomControl.MyTreePanel.init 方法,初始化其 tr 属性,以便在客户端操作该控件: pu

ExtJs2.0学习系列(14)--Ext.TreePanel之第三式(可增删改的树)

继续tree的learn! 今天就来个可增删改的树吧,操作数据库就使用比较方便的Linq,无非就是增删改! LinqData.dbml: html代码: <body> <div id="container" style="float:left; margin-right:10px;"> </div> <iframe name="mainFrame" id="mainFrame" src

ExtJs2.0学习系列(13)--Ext.TreePanel之第二式

昨天有朋友说,在IE下有的时候ashx传过来的节点不能加载,其实我也出现这样的问题,很是烦人! 今天extjs上看到了一个解决方案,觉得很好:如果treeLoader加载失败,会继续加载,直到成功加载. 4.解决IE下非正常加载节点问题 即使从服务器取到大量的数据,也没有问题. -- 基本代码一样,只有js代码的loader小小的修改下: loader:new Ext.tree.TreeLoader({ url:"json.ashx", listeners:{ "loadex

ExtJs2.0学习系列(12)--Ext.TreePanel之第一式

今天开始,我们就开始一起学习TreePanel了,道个歉,上篇的代码很乱阿. 我总是喜欢用最简单的例子开始,去理解最基本的使用方法,减少对i后面高级使用的干扰! TreePanel是继承自Panel,所以很多在Panel中谈到的属性这里可能会一笔带过,如有问题,请参考ExtJs2.0学习系列(2)--Ext.Panel 1.第一个静态树--最简单的树 效果图: html代码: <div id="container"> </div> js代码: Ext.onRea

[老贴重发]EXT:指定树控件TreePanel 展开到第几层

12年写的文章了,可能由于某博客某年帐号泄露,被人删除了很多文章. 还有底搞的,我就重发一下. 对于Ext.tree.TreePanel,相信使用过EXT的人一般都用到过.所以本文中不会包含EXT或TreePanel 基础知识的介绍了      比如做一个行政区划的树.如下图所示: 但在有的时候,这颗树的数据量会很大,层级也会很深,默认全部展开的话,会很慢,而且显示一大堆东西出来,显示不符合用户的需求.可又不是默认全部折叠,这样用户又第一眼看不见想关心的东西的内容.     所以笔者在这里提出了